0

テーブルを更新するために以下のコードを書きましたが、機能しません。

sqlstr = "UPDATE Student SET " & S & " = @field1, " & L & " = @field2, " & R & " =@field3, " & W & "=@field4 WHERE Code='" & StdID & "'"
DBCmd = New MySql.Data.MySqlClient.MySqlCommand(sqlstr, DBConn)
With DBCmd
        .Parameters.AddWithValue("@field1", CB_S.SelectedItem)
        .Parameters.AddWithValue("@field2", CB_L.SelectedItem)
        .Parameters.AddWithValue("@field3", CB_R.SelectedItem)
        .Parameters.AddWithValue("@field4", CB_W.SelectedItem)
    End With
    DBCmd.Dispose()

ここで、S、L、R、および W は文字列です: S1、L1、R1、W1。StdID は整数です。CB_S、CB_L、CB_R、CB_W はコンボボックスです。

誰が何が間違っているのか教えてもらえますか?

4

1 に答える 1

2

を開いていないconnectionと を呼び出しますExecuteNonQUery()。の値もパラメータ化Code

sqlstr = "UPDATE Student SET " & S & " = @field1, " & L & " = @field2, " & R & " =@field3, " & W & "=@field4 WHERE Code=@code"
DBCmd = New MySql.Data.MySqlClient.MySqlCommand(sqlstr, DBConn)
With DBCmd
        .Parameters.AddWithValue("@field1", CB_S.SelectedItem)
        .Parameters.AddWithValue("@field2", CB_L.SelectedItem)
        .Parameters.AddWithValue("@field3", CB_R.SelectedItem)
        .Parameters.AddWithValue("@field4", CB_W.SelectedItem)
        .Parameters.AddWithValue("@code", StdID)
End With
DBConn.Open()
DBCmd.ExecuteNonQuery()
于 2013-04-07T17:14:27.410 に答える