Member 14087495 Ответов: 0

Как обновить набор данных с помощью 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

- Спасибо, Ричард. Когда я посмотрел на него, в этом запросе было указано слишком много файлов. Я не знал, что существует ограничение на количество полей в записи. Я уменьшил количество полей, и код работает хорошо. Мне просто придется переделать несколько вещей! Еще раз спасибо вам за вашу помощь!!

0 Ответов