1

選択した「受信者」のシリアル番号をテキストボックスに表示しようとしていますが、次のエラーが発生します。

System.ArgumentException: Cannot bind to the property or column RecipientSNo on the DataSource.

デバッグするためだけに、別のクエリ(同じコード、列名を「recipient」から「issuer」に変更しただけ)を使用して別のテキストボックスにこれを実行しました。'受信者'に対して再試行しましたが、それでも機能しません。私のコード:

    query("SELECT RecipientSNo FROM Recipient WHERE CONCAT(FirstName, ' ', MI, '. ', LastName) = '" & ReceiverName.Text & "';")
    Try
        adapter = New MySqlDataAdapter(CommandText, ServerString)
        table = New DataTable
        Dim ds As New DataSet
        Dim bs As BindingSource
        adapter.Fill(ds, "recipient")
        bs = New BindingSource(ds, "recipient")
        DataBindings.Clear()
        ReceiverSNo.DataBindings.Add("text", bs, "ReceipientSNo")
    Catch ex As Exception
        MsgBox(ex.ToString)
    End Try
    disconnect()

これは、機能している「発行者」からのコードです。

    query("SELECT IssuerSNo FROM Issuer WHERE CONCAT(FirstName, ' ', MI, '. ', LastName) = '" & IssuerName.Text & "';")
    Try
        adapter = New MySqlDataAdapter(CommandText, ServerString)
        table = New DataTable
        Dim ds As New DataSet
        Dim bs As BindingSource
        adapter.Fill(ds, "armorer")
        bs = New BindingSource(ds, "armorer")
        IssuerSNo.DataBindings.Clear()
        IssuerSNo.DataBindings.Add("text", bs, "ArmorerSNo")
    Catch ex As Exception
        MsgBox(ex.ToString)
    End Try
    disconnect()

このコードに対処し、テキストボックスと列の名前を変更しましたが、まだ機能していませんでした。何が問題なのですか。テーブルと列の名前をすでに再確認しました。

4

1 に答える 1

0

私はあなたが書くべきだと思います

ReceiverSNo.DataBindings.Clear()         
ReceiverSNo.DataBindings.Add("text", bs, "RecipientSNo") 

クエリから返される列は、DataBindings.Adduseと呼ばれRecipientSNoます
ReceipientSNo

于 2012-06-12T13:47:47.663 に答える