У меня возникла проблема с обновлением таблицы через представление сетки данных нажатием кнопки. вот мой код.System.InvalidOperationException: ошибка при обновлении таблицы через datagridview с использованием метода dt.update
Public Sub loaddgvfrm3()
cmdconn = New SqlConnection
cmd = New SqlCommand
cmdconn.ConnectionString = sqlstr
cmdconn.Open()
cmd.Connection = cmdconn
cmd.CommandText = "select period, VOUCH_AMT, INDIVIDUAL_AMT, check_no, D_MAILED, DIR_NO, who_updated, year_student from tobee.EBD_BILLHISTORY where CLAIM_NO like '" + txtClaimno.Text + "'"
'cmd.CommandText = "select a.period, a.VOUCH_AMT, a.INDIVIDUAL_AMT, a.check_no, a.bal_ent, a.D_MAILED, a.DIR_NO from tobee.EBD_BILLHISTORY a left join carlos.claims_waivee b on a.CLAIM_NO = b.claim_no where b.CLAIM_NO like '" + claimno.ToString + "'"
'Dim ds As New DataTable
'Dim cmdbuilder = New SqlCommandBuilder(da)
'da = New SqlDataAdapter()
da.SelectCommand = cmd
da.Fill(dt)
Me.DataGridView1.DataSource = dt
Me.DataGridView2.DataSource = dt
cmdconn.Close()
End Sub
приведенный выше код представляет собой контент datagridview, где я помещаю свой оператор select. и что DataGridView это я модифицирование прямо сейчас
Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
Try
cmdBuilder = New SqlCommandBuilder(da)
da.Update(dt)
dt.AcceptChanges()
'End If
MsgBox("changes done")
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
всякий раз, когда я нажмите кнопку сохранения после изменения определенной строки, журнал ошибок выходит,
как это взгляд ошибки-х:
системы. InvalidOperationException: динамическая генерация SQL для UpdateCommand не поддерживается с помощью SelectCommand, которая не возвращает никакой информации о столбце. на system.data.common.dbdataadapter.updatingrowstatusErrors (RowUpdatingeventArgs rowUpdatedEvent, DataRow DataRow) в System.data.Common.DbDataAdapter.UpdateFromDataTable (DataTable DataTable, DataTableMapping tablemapping) в System.Data.Common.DataAdapter.Update (DataTable DataTable) в Educational.frmEb.btnSave_Click (объект отправителя, EventArgs е) в C: \ Users \ Fox \ Documents \ Stress Test \ Обучающие \ form3.vb: линия 220
, но программа все еще продолжается. Я не вижу изменений, внесенных в базу данных DGV. есть что-то, что мне не хватает?
вот моего заявление
Dim connstr As String = "server=midtelephone\sqlexpress; database=testdb; user= sa; password=sa;"
Dim cmdconn = New SqlConnection
Dim cmdBuilder As SqlCommandBuilder
Dim da As New SqlDataAdapter()
Dim dt As New DataTable
до этой ошибки, они говорят, что мне нужно, чтобы установить первичный ключ/уникальный ключ в базе данных, так что я сделал, но та же самая ошибка выходит.
pls help me, im действительно застрял на этом этапе, я буду навсегда благодарен, если вы это сделаете, так как это последняя часть моего проекта. обновление изменений, сделанных из dgv в базу данных с использованием материалов da.update.
Это поможет показать таблицу базы данных, о которой идет речь, но я чувствую, что у нее нет первичного ключа. –
Я создал первичный ключ в выбранной таблице, но та же ошибка появляется. –
Я не вижу ваш SelectCommand в SqlDataAdapter, пожалуйста, покажите это –