Пытаюсь написать простое приложение-редактор на VB.NET 2008
Пользователь загружает таблицу в DataGridView с сервера-А, добавляет/изменяет/удаляет записи.
Не знаю, как используя транзакцию, правильно обновить данные и на втором сервере-В.
Код примерно такой:
Dim ds_Table As New DataSet
' строка подключения к источнику данных 1
Dim ConnectString As String = "Provider=MSDAORA;Data Source=ServerA;Persist Security Info=True;User ID=MyBase;Password=password"
' строка подключения к источнику данных 2
Dim ConnectString2 As String = "Provider=MSDAORA;Data Source=ServerB;Persist Security Info=True;User ID=MyBase;Password=password"
' имя таблицы для редактирования
Dim OpenningTable As String = "MyTable"
'*** Открыть таблицу
Private Sub OpenTable()
Dim cmdString As String = "SELECT * FROM " & OpenningTable
Dim da_Tables As New OleDbDataAdapter(cmdString, ConnectString) ' создаем адаптер
Try
' Заполняем таблицу
da_Tables.Fill(ds_Table, OpenningTable)
' Загружаем данные
bs_Table.DataSource = ds_Table.Tables(OpenningTable)
' BindingSource раскидываем по всем нужным элементам
DataGridView.DataSource = bs_Table
BindingNavigatorTable.BindingSource = bs_Table
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Ошибка запроса данных " & OpenningTable)
End Try
End Sub
'*** Сохранить изменения в базе данных
Private Sub SaveChanges()
' Создаем адаптер данных
Dim da_Table As New OleDbDataAdapter("SELECT * FROM " & OpenningTable, ConnectString)
Dim builder As OleDbCommandBuilder
Try
DataGridView.EndEdit() ' завершаем редактирование в ячейке
da_Table.TableMappings.Add("Table", OpenningTable) ' задаем соответствие для имени таблицы
builder = New OleDbCommandBuilder(da_Table) ' создаем команды для вставки, обновления и удаления
da_Table.Update(ds_Table) ' сохраняем изменения
ds_Table.AcceptChanges() ' помечаем текущие данные как неизмененные
Catch ex As Exception
DataGridView.Refresh()
MsgBox(ex.Message, MsgBoxStyle.Critical, "Ошибка обновления данных")
End Try
End Sub
В данном варианте, на одном сервере все работает прекрасно.
Помогите пожалуйста!