我有问题试图从我的VS 2012中删除记录而我正在使用sql server 2012,这是我的讲师的任务,我无法解决它
现在这就是我所拥有的
Private Sub bt_hapus_Click(sender As Object, e As EventArgs) Handles bt_hapus.Click
Try
Dim sqlda As New SqlClient.SqlDataAdapter("Delete from tabelpasien where No_Rkm_Mds=" & Me.txt_rkm_mds.Text, Me.SqlConnection1)
sqlda.Fill(dspasien, "tabelpasien")
MsgBox("Data telah berhasil dihapus")
bersih()
pasif()
normal()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
任何帮助都会被大大贬低......
答案 0 :(得分:6)
使用SqlCommand和ExecuteNonQuery方法执行删除命令。
您的代码应为
Try
Dim cmd = New SqlClient.SqlCommand("Delete from tabelpasien where No_Rkm_Mds=@rkm", Me.SqlConnection1)
cmd.Parameters.AddWithValue("@rkm", Me.txt_rkm_mds.Text)
cmd.ExecuteNonQuery()
....
使用参数化查询,您不必在where值附近放置引号(如果基础字段是任何类型的char / varchar / nvarchar类型),但参数化查询的最重要的好处是消除a可能的Sql Injection攻击
答案 1 :(得分:1)
您已经忘记了您的单引号I.E.“'”来自您的情况。
你的陈述应该是
Delete From tabelpasien where No_Rkm_Mds='" + Me.txt_rkm_mds.Text + "'"
答案 2 :(得分:1)
如果这是SQL SERVER,则语句中不应该有FROM
。
Dim sqlda As New SqlClient.SqlDataAdapter("DELETE tabelpasien where No_Rkm_Mds=" & Me.txt_rkm_mds.Text, Me.SqlConnection1)
如果No_Rkm_Mds
是VARCHAR
或NVARCHAR
等等,则该值必须包含在'
s中。
Dim sqlda As New SqlClient.SqlDataAdapter("DELETE tabelpasien where No_Rkm_Mds=`" & Me.txt_rkm_mds.Text & "`", Me.SqlConnection1)
最后,您应该考虑使用SQL参数来避免SQL注入。