0

DGVのバインディングソースに問題があります。メッセージは「DataMemberプロパティ'ノード'がdataSourceに見つかりません」です。テーブルをデータソースに設定した後、列数は14です。エラーは、nodesDataGridView.DataSource=bsNodesの行で発生します。エラーの前に中断してからdsにカーソルを合わせると、テーブルノードがデータソースにあることが示されます。私はこれと同様のコードを使用して他のDGVをセットアップしましたが、これに違いは見られません。

これらのステートメントを削除してもエラーは発生しませんが、もちろんフィルタリングされません):

        nodesDataGridView.DataSource = bsNodes
        bsNodes.Filter = "company_number = " & Globals.customer_id

グリッドが完成して機能した後で、company_numberを追加したことはおそらく言及する必要があります。単一の会社コード用に設定されましたが、データベースで複数の会社をサポートするための要件を追加する必要があります。

何か案は?

ありがとう、

ヴィック

' Setup objects for loading the summary grid
Dim sqlNodes As String = "Select *From nodes order by display_sequence"
Dim comm As MySqlCommand = New MySqlCommand(sqlNodes, m_cn1)
Dim daNodes As MySqlDataAdapter = New MySqlDataAdapter(comm)
Dim dsNodes As DataSet = New DataSet()
dim bsNodes As New BindingSource

    Try
        AddHandler ButtonSaveChanges.Click, AddressOf ButtonSaveChanges_Click
        dsNodes.Clear()
        daNodes.Fill(dsNodes, "nodes")
        m_cn1.Close()
        nodesDataGridView.DataSource = dsNodes
        nodesDataGridView.DataMember = "nodes"
        bsNodes.DataSource = dsNodes.Tables("nodes")
        Debug.Print("nodes column count is " & nodesDataGridView.ColumnCount)
        nodesDataGridView.DataSource = bsNodes
        bsNodes.Filter = "company_number = " & Globals.customer_id

    Catch ex As Exception
        MessageBox.Show("Failed to load summary grid" & vbCrLf & vbCrLf & ex.ToString)
    End Try
4

1 に答える 1

0

このようにフィルタリングしてみてください

bsNodes.Filter = "company_number = '" & Globals.customer_id.ToString() & "'"

編集:

    bsNodes.DataSource = dsNodes.Tables("nodes")
    nodesDataGridView.DataSource = bsNodes '<- you set dsNodes(Dataset) this should be the BindingSource not Dataset
    nodesDataGridView.DataMember = "nodes"
    Debug.Print("nodes column count is " & nodesDataGridView.ColumnCount)
    'nodesDataGridView.DataSource = bsNodes
    bsNodes.Filter = "company_number = '" & Globals.customer_id.ToString() & "'"
于 2012-12-29T04:25:30.500 に答える