Как обновить базу данных из связанного datagridview
Я пытаюсь обновить базу данных из привязанного datagridview, но мне не очень везет. Я хочу сначала отобразить данные в datagridview, а затем, после внесения изменений в datagridview, я хочу нажать кнопку обновления, чтобы обновить базу данных. Я создал код, который связывает базу данных с datagridview, и он отлично работает. У меня проблемы с тем, как потом обновить базу данных. Я создал конструктор команд для автоматического создания команды обновления. Если я обновляю datatable программно, а затем вызываю обновление dataadapter, он работает нормально. Однако, если я попытаюсь вызвать обновление dataadapter в моей кнопке, это даст мне ошибку:
The ConnectionString property has not been initialized.
Я думаю, что я близок к этому, но я просто не могу понять, почему это не работает. Нужно ли мне заново инициализировать что-то в моей кнопке?
Что я уже пробовал:
Dim con As System.Data.OleDb.OleDbConnection = New OleDb.OleDbConnection(connectionString) Dim da As OleDbDataAdapter Dim ds As DataSet Dim dt As DataTable Private Sub FormPlannedProductionTimes_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown Me.DateTimePickerStart.Value = Today End Sub Private Sub RefreshDGVMonday() con = New OleDb.OleDbConnection(connectionString) da = New OleDbDataAdapter ds = New DataSet dt = New DataTable Dim DGV As DataGridView = Me.DGVMonday Try 'Create the select command da.SelectCommand = New OleDbCommand(Nothing, con) da.SelectCommand.CommandText = "SELECT MACHINE AS MACH, OEEDATE, SHIFT1 AS S1, SHIFT2 AS S2, SHIFT3 AS S3 " & _ "FROM PLANNEDPRODUCTIONTIMES " & _ "WHERE OEEDATE = TO_DATE('" & DateTimePickerStart.Value & "', 'MM/DD/YYYY HH:MI:SS AM') " & _ "ORDER BY MACH" 'Create a command builder to auto generate the update command Dim cb As New OleDbCommandBuilder(da) da.InsertCommand = cb.GetInsertCommand 'Clear all columns DGV.Columns.Clear() 'Fill the DataAdapter da.Fill(ds, "Monday") dt = ds.Tables("Monday") 'Programatically change the values in the datatable 'then update the data adapter 'This works fine, however, if I remove these 2 lines 'and call theupdate in my button below, I get an error dt.Rows(0)!s1 = 1 da.Update(dt) 'Set the datasource DGV.DataSource = dt 'Set the width DGV.Columns("MACH").Width = 50 DGV.Columns("OEEDATE").Width = 70 DGV.Columns("S1").Width = 30 DGV.Columns("S2").Width = 30 DGV.Columns("S3").Width = 30 Catch ex As Exception MsgBox("Could not refresh the production time data because: " & vbNewLine & vbNewLine & _ ex.Message & vbNewLine & _ "Contact Admin for more assistance.", MsgBoxStyle.Exclamation, "Error") Finally con.Close() con.Dispose() da.Dispose() End Try End Sub Private Sub DateTimePickerStart_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateTimePickerStart.ValueChanged RefreshDGVMonday() End Sub Private Sub BtnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnUpdate.Click 'This gives me an error da.Update(dt) End Sub