Я использую базу данных Access MS в качестве бэкенда моего приложения 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, вы можете использовать метод ExecuteNonQuery ()
, который возвращает количество затронутых строк.
Вот так:
cmd = New OleDbCommand("INSERT INTO blah blah...", cn)
rowCount = cmd.ExecuteNonQuery()
If rowCount < 1 Then
' Blah
Вы должны меня извинить, если VB неверен, я не тестировал его, но надеюсь, вы уловили идею.
Можете ли вы выполнить быстрый SELECT COUNT(*) ОТ БЛА БЛА
, используя те же ключевые критерии, которые вы использовали для вставки?
Используйте метод ExecuteNonQuery
, так как запрос не возвращает никакого результата. Метод возвращает целое число, которое представляет собой количество затронутых строк.
Dim count As Integer = cmd.ExecuteNonQuery()