もう一度、私はあなたに助けを求めています。DataGridView に入力されたデータを SQL テーブルに保存しようとすると、少し行き詰まります。
私はいくつかの投稿をフォローしましたが、それを理解するために縫い合わせることができません
フォームで次の変数をグローバルに宣言します
Dim SQLAdaptor As New SqlClient.SqlDataAdapter
Dim Con As New SqlClient.SqlConnection
Dim builder As SqlClient.SqlCommandBuilder
フォームが読み込まれるときにこれを呼び出します
Private Sub SetTicketList()
Con.ConnectionString = CropTrackMod.strConn
SQLAdaptor.SelectCommand = New SqlClient.SqlCommand("SELECT StockRef, Weight, EstimatedPrice, EstimatedPrice, DespatchedQuantity, EstimatedTransport, EstimatedLineTotal FROM TicketDetail", Con)
builder = New SqlClient.SqlCommandBuilder(SQLAdaptor)
Con.Open()
Dim myTable As DataTable = New DataTable
SQLAdaptor.Fill(myTable)
dgvTicketDetail.DataSource = myTable
End Sub
ユーザーがデータグリッドビューに行を残したときにこれを呼び出し、SQLテーブルに保存する必要があります
Private Sub dgvTicketDetail_RowLeave
' at grid save'
Dim myTable = CType(dgvTicketDetail.DataSource, DataTable)
SQLAdaptor.Update(myTable)
End Sub
フォームが読み込まれると、データ グリッド ビューに正しい列が表示されるので、最初の部分は問題ないと思います。問題は、データを保存し直すときに発生します。初めて実行すると、エラー メッセージは表示されません。2 行目を試すと、次のエラーが表示されます。
Update には、新しい行を含む DataRow コレクションを渡すときに有効な InsertCommand が必要です。
私が理解できることから、データアダプターに更新コマンドが設定されていないため、問題が発生しています。