0

私のaddステートメントは非常にうまく機能しますが、データを編集しようとすると機能しません。私は正しいコードを何を使うべきかを理解するのに行き詰まっています。私は本当にあなたの助けが必要です!

私のaddステートメントは非常にうまく機能しますが、データを編集しようとすると機能しません。私は正しいコードを何を使うべきかを理解するのに行き詰まっています。私は本当にあなたの助けが必要です!

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

エンドクラス

4

1 に答える 1

0

いくつかのポイント。

まず、INSERTSQLコマンドは、データベーステーブルに新しい行を挿入するためのものです。既存の行を編集する場合は、UPDATEコマンドを使用する必要があります。のようになりますUPDATE Table_Info SET Name = @name WHERE ID = @id

第二に、あなたは本当にそのようなSQLコマンド文字列を構築するべきではありません。未確認のユーザー入力をデータベースに直接渡すため、基本的にSQLインジェクション攻撃にさらされることになります。パラメータ化されたクエリを確認する必要があります。

于 2013-03-08T09:15:12.127 に答える