0
I am deleting selected row from grid view.

次のコードでは、行は gridview から削除されますが、データベースからは削除されません。varchar を int に変換するエラーが表示されます

Private Sub dltButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dltButton.Click
            'Dim StudentId As String
            'StudentId =
            'con.Open()
            'cmd.CommandText = "delete from KaiyumVbStudent where StudentID = '"&StudentId&"'"
            'cmd.Connection = con
            Dim i As Integer = DataGridView1.CurrentRow.Index
            DataGridView1.Rows.Remove(DataGridView1.CurrentRow)
            StudentID = CType(DataGridView1.SelectedCells(2), TextBox).Text
            con = New SqlConnection(constring)
            con.Open()
            cmd = New SqlCommand("Delete from KaiyumVbStudent where StudentID = '@StudentID'", con)
            cmd.ExecuteNonQuery()
            Call databind()
        End Sub
4

2 に答える 2

1

これは、パラメータを引用符で囲んでいるためだと思います。

つまり、これ:

Delete from KaiyumVbStudent where StudentID = '@StudentID'

おそらく次のように読む必要があります(@StudentIDの前後に引用符がないことに注意してください):

Delete from KaiyumVbStudent where StudentID = @StudentID

ただし、コードのどこにパラメータを追加/設定しているのかわかりません@StudentID

于 2012-09-27T06:47:07.190 に答える
0

where の実行時にデータ型変換エラーが発生しStudentID='1'ない場合がありますが、パラメーター値を設定していないように見えるという上記のコメントに同意します。したがって、効果的に次のSQLを実行しています。

Delete from KaiyumVbStudent where StudentID = '@StudentID'

于 2012-09-27T11:35:54.683 に答える