我已经在visual basic中编写了这段代码。执行时不会打印错误,但新行不会添加到数据库中。我也试过使用数据集,但也没有用。有什么想法吗?
Dim conSQL As SqlConnection = New SqlConnection
conSQL.ConnectionString = "Data Source=USER-PC\SQLEXPRESS;Initial Catalog=Phd;Integrated Security=True"
conSQL.Open()
Dim cmd As New SqlCommand("Insert into Phd_Student(student_id,student_name,student_email) values ('" + idnotextbox.Text + "','" + studnametextbox.Text + "','" + studemailtextbox.Text + "')" , conSQL)
cmd.ExecuteNonQuery()
答案 0 :(得分:1)
执行插入只有两种可能的结果;要么添加记录,要么得到例外。所以你的案例中的替代方案是:
*)如果您在ID文本框中输入值-1','','');delete Phd_Student where student_id='-1'--
,则会添加记录然后将其删除。
答案 1 :(得分:0)
1-您应该在执行命令之前打开连接。
try
conSQL.open()
Dim cmd As New SqlCommand("Insert into Phd_Student(student_id,student_name,student_email) values ('" + idnotextbox.Text + "','" + studnametextbox.Text + "','" + studemailtextbox.Text + "')" , conSQL)
cmd.ExecuteNonQuery()
Finally
conSQL.close()
end try
2-你应该将参数传递给查询而不是这样,以避免SQL注入。
答案 2 :(得分:0)
首先,确保在cmd.ExecuteNonQuery()行之后调用conSQL.Close()。