2013-03-08 31 views
0

我的添加语句是工作相当不错,但当它转向编辑数据它不会工作。 我不知道我应该使用什么正确的代码。 我真的需要你的帮助!我很难注入sql到我的项目

我的添加语句工作得很好,但是当编辑数据时它不会工作。 我不知道我应该使用什么正确的代码。 我真的需要你的帮助!

Imports System.Data.SqlClient 
Public Class Form1 
Dim connetionString As String 
Dim cnn As SqlConnection 
Dim cmd As SqlCommand 
Dim da As SqlDataAdapter 
Dim dt As DataTable 
Dim ds As DataSet 
Dim sql As String 
Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click 

      connetionString = "Data Source=xxx;Initial Catalog=xxx;User ID=xxx;Password=xxx" 
    sql = "INSERT INTO Table_Info (ID,Name) VALUES ('" & Me.txtID.Text & "','" & Me.txtName.Text & "')" 

    cnn = New SqlConnection(connetionString) 

    cnn.Open() 
    cmd = New SqlCommand(sql, cnn) 
    cmd.ExecuteNonQuery() 
    cmd.Dispose() 
    cnn.Close() 

End Sub 
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    'TODO: This line of code loads data into the 'TestDataSet.Table_Info' table. You can move, or remove it, as needed. 
    Me.Table_InfoTableAdapter.Fill(Me.TestDataSet.Table_Info) 

End Sub 
Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEdit.Click 

    Dim connetionString As String 
    connetionString = "Data Source=xxx;Initial Catalog=xxx;User ID=xxx;Password=xxx" 

    cnn = New SqlConnection(connetionString) 
    sql = "insert into Table_Info (ID,Name) values('" & txtID.Text & "','" & txtName.Text & "')" 
    Try 
     cnn.Open() 
     da.InsertCommand = New SqlCommand(sql, cnn) 
     da.InsertCommand.ExecuteNonQuery() 
     MsgBox("err.discription") 
    Catch ex As Exception 
     MsgBox(ex.ToString) 
    End Try 



End Sub 

末级

回答

0

几个百分点。

首先,INSERT SQL命令用于将新行插入到数据库表中。如果您要编辑现有的行,则需要使用UPDATE命令。它看起来像UPDATE Table_Info SET Name = @name WHERE ID = @id。其次,你真的不应该像这样构建SQL命令字符串。当你将未经验证的用户输入直接传递到数据库中时,你基本上已经打开了自己的SQL注入攻击。你应该看看parametrized queries