Я пытаюсь обновить базу данных Access из XML-файла с помощью VB.NET и OleDB. Я использую следующий код, но не могу заставить обновление работать. Я не получаю никаких ошибок, но обновление не происходит - похоже, обработка CRSID является строкой, несмотря на .DbType.Int32. Отладочный вывод показывает все правильные значения, и аналогичный метод для Insert SQL отлично работает. Если я жестко кодирую значение в CRSID, db обновляется, но данные находятся в неправильных столбцах. LastName содержит CRSID и FirstName содержит LastName. Надеюсь, кто-то может помочь.Обновление SQL в VB.NET с использованием OLEDB
For Each drCurrent In dt.Rows
Using cmd As New OleDb.OleDbCommand With
{
.Connection = cn,
.CommandText =
<SQL>
Update NewPMS SET LastName = @LastName, FirstName = @Firstname WHERE CRSID = @CRSID
</SQL>.Value
}
cmd.Parameters.AddRange(New OleDb.OleDbParameter() _
{
New OleDb.OleDbParameter With {.ParameterName = "@CRSID", .DbType = DbType.Int32},
New OleDb.OleDbParameter With {.ParameterName = "@LastName", .DbType = DbType.String},
New OleDb.OleDbParameter With {.ParameterName = "@FirstName", .DbType = DbType.String}
}
)
cmd.Parameters(0).Value = drCurrent("CRSID")
cmd.Parameters(1).Value = drCurrent("LastName")
cmd.Parameters(2).Value = drCurrent("FirstName")
cn.Open()
cmd.ExecuteNonQuery()
cn.Close()
cmd.Parameters.Clear()
End Using
Next
Это сработало отлично. Вы заслуживаете золотую звезду! – RGold
Рад помочь. Являясь новым пользователем сайта, я рекомендую прочитать [Как работает прием ответа] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) – Steve