我正在使用MS Access数据库作为我的VB.NET应用程序的后端。我使用INSERT INTO语句将用户详细信息输入数据库:
cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & config("DatabasePath") & ";")
cn.Open()
cmd = New OleDbCommand("INSERT INTO blah blah blah...", cn)
dr = cmd.ExecuteReader
一切正常,但我想检查数据是否已实际输入数据库。我尝试过使用:
cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & config("DatabasePath") & ";")
cn.Open()
cmd = New OleDbCommand("INSERT INTO blah blah blah...", cn)
dr = cmd.ExecuteReader
If dr.Read() Then
' Blah
End If
但很明显,insert语句不会返回任何内容,所以这不起作用。有什么建议吗?
答案 0 :(得分:8)
如果只有INSERT语句,则可以使用ExecuteNonQuery()
方法返回受影响的行数。
像这样:
cmd = New OleDbCommand("INSERT INTO blah blah...", cn)
rowCount = cmd.ExecuteNonQuery()
If rowCount < 1 Then
' Blah
如果VB不正确,你不得不原谅我,我没有测试它,但我希望你明白这一点。
答案 1 :(得分:0)
您可以使用与插入时相同的关键条件运行快速SELECT COUNT(*) FROM blah blah blah
吗?
答案 2 :(得分:0)
使用ExecuteNonQuery
方法,因为查询不会返回任何结果。该方法返回一个整数,即受影响的行数。
Dim count As Integer = cmd.ExecuteNonQuery()