0

私が持っているこのテーブルは、主キーなしで作成されています。キーなしで作成されたのには理由があります。商品と顧客の関係表のようなものです。そのため、を使用SqlDataAdapterDataSetて入力する標準的な手順の後、変更の更新中にエラーが発生しました。DataTableDataGrid

DataGrid' but they all work fine due to the fact the table have primary keys. I tried adding a composite key but it didn't work. So below is my code for theDataSet` と他のフォームで機能する更新コードを 使用して、いくつかのフォームに取り組んできました。

更新コード:

cmdbuilder = New SqlCommandBuilder(adapter)

If primaryDS IsNot Nothing Then
    primaryDS.GetChanges()

    'update changes
    adapter.Update(primaryDS)
    MsgBox("Changes Done")

    'refresh the grid
    CMDrefresh()
End If

そして、DataTableこれが 5 つの複合キーを追加しようとしたためのコーディングです。では、この問題をどのように更新しますか?

Try
    myconnection = New SqlConnection(strConnection)
    myconnection.Open()

    adapter = New SqlDataAdapter(StrQuery, myconnection)
    adoPrimaryRS = New DataSet

    adapter.Fill(primaryDS)
    Dim mainTable As DataTable = primaryDS.Tables(0)

    DataGrid.AutoGenerateColumns = False
    mainTable.PrimaryKey = New DataColumn() {mainTable.Columns(0), _
                                             mainTable.Columns(1), _
                                             mainTable.Columns(2), _
                                             mainTable.Columns(3), _
                                             mainTable.Columns(4)}

    bndSrc.DataSource = mainTable
    DataGrid.DataSource = bndSrc

    gDB.Connection.Close()

Catch ex As Exception
    MsgBox(ex.Message)
End Try
4

1 に答える 1