Checking if INSERT INTO statement was successful

2019-06-20 06:47发布

I am using a MS Access database as the backend of my VB.NET application. I am entering users details into the database using an INSERT INTO statement:

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

Everything works, but I wanted to check if the data has actually been entered into the database. I have tried using:

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

but obviously the insert statement doesn't return anything so this doesn't work. Any suggestions?

3条回答
该账号已被封号
2楼-- · 2019-06-20 06:53

Use the ExecuteNonQuery method, as the query doesn't return any result. The method returns an integer which is the number of rows affected.

Dim count As Integer = cmd.ExecuteNonQuery()
查看更多
老娘就宠你
3楼-- · 2019-06-20 06:56

If all you have is the INSERT statement you can use the ExecuteNonQuery() method which returns how many rows were affected.

Like this:

cmd = New OleDbCommand("INSERT INTO blah blah...", cn)
rowCount = cmd.ExecuteNonQuery()
If rowCount < 1 Then 
    ' Blah

You have to excuse me if the VB isn't correct, I didn't test it, but I hope you get the idea.

查看更多
唯我独甜
4楼-- · 2019-06-20 07:10

Can you run a quick SELECT COUNT(*) FROM blah blah blah using the same key criteria as you used for the insert ?

查看更多
登录 后发表回答