检查INSERT INTO语句是否成功

时间:2010-02-09 09:46:08

标签: database vb.net ms-access insert

我正在使用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语句不会返回任何内容,所以这不起作用。有什么建议吗?

3 个答案:

答案 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()