Как обновить набор данных с помощью oledb VB.NET
Я пытаюсь обновить измененный набор данных с помощью OleDb in Vb.Net.
Я могу добраться до данных и изменить их, но, похоже, не могу обновить набор дат.
Проблема, похоже, связана с CommandBuilder, но я не могу найти решение.
Что я уже пробовал:
Dim i As Integer = 0 Dim strA As String = "" Dim con As New OleDb.OleDbConnection Dim da As OleDb.OleDbDataAdapter Dim ds As New DataSet 'WIP Header Data Dim sql As String Dim DBprovider As String = "PROVIDER=Microsoft.Jet.OLEDB.4.0;" Dim DBSource As String = "Data Source = C:\Temp\TestDataBase.mdb" con.ConnectionString = DBprovider & DBSource con.Open() sql = "SELECT * FROM tblRecord" da = New OleDb.OleDbDataAdapter(sql, con) Dim cb As New OleDb.OleDbCommandBuilder(da) da.Fill(ds, "MyData") MaxRows = ds.Tables("MyData").Rows.Count Debug.Print(ds.Tables("MyData").Rows.Count) 'Code to modify data in the DataSet goes here, ie: ds.Tables("MyData").Rows(0).Item("StandardName") = "Update Test" da.UpdateCommand = cb.GetUpdateCommand(True) da.Update(ds, "MyData") con.Close()
0x01AA
А сообщение об ошибке есть? *хряк*
Member 14087495
OleDbException не обработано
Запрос слишком сложен
Richard MacCutchan
Где находится запрос, который вызывает проблему?
Member 14087495
Исключение создается при выполнении da.Update(ds,"MyData").
Richard MacCutchan
Were - это фактический текст запроса?
Member 14087495
Нет никакого запроса.Я читаю набор данных в ( da.fill(ds,"MyTest")) и делаю несколько изменений. Это прекрасно работает. Затем я просто хочу сохранить измененный набор данных.
Richard MacCutchan
Строка кода
da.UpdateCommand = cb.GetUpdateCommand(True)
возвращает
OleDbCommand
объект. Посмотрите на его CommandText
свойство видеть, что оно содержит.
Member 14087495
- Спасибо, Ричард. Когда я посмотрел на него, в этом запросе было указано слишком много файлов. Я не знал, что существует ограничение на количество полей в записи. Я уменьшил количество полей, и код работает хорошо. Мне просто придется переделать несколько вещей! Еще раз спасибо вам за вашу помощь!!