11

C# でデータベースを操作しているときに表示ボタンを押すと、次のエラーが表示されます。

エラー:
DataSource のプロパティまたは列 LastName にバインドできません。パラメータ名: dataMember

コード:

private void Display_Click(object sender, EventArgs e)
{
    Program.da2.SelectCommand = new SqlCommand("Select * From Customer", Program.cs);
    Program.ds2.Clear();
    Program.da2.Fill(Program.ds2);
    customerDG.DataSource = Program.ds2.Tables[0];

    Program.tblNamesBS2.DataSource = Program.ds.Tables[0];

    customerfirstname.DataBindings.Add(new Binding("Text", Program.tblNamesBS2, "FirstName"));
    customerlastname.DataBindings.Add(new Binding("Text", Program.tblNamesBS2, "LastName")); //Line Error occurs on.
}

最後の 2 行をコメント アウトすると、適切に表示されます。

4

6 に答える 6

7

これは、データテーブルがデータベースにある列名 LastName を見つけられないことを意味します..

あなたの場合、データセットにds2..を入力します。

 Program.da2.Fill(Program.ds2); 

そして、このようにデータソースを「プログラム」にバインドしています..

Program.tblNamesBS2.DataSource = Program.ds.Tables[0];  

それはこのようにする必要があります..

Program.tblNamesBS2.DataSource = Program.ds2.Tables[0];  

行の下では、「ds」にバインドされている Program.tblNamesBS2 の値を探しているため、列が「ds」にないのはそのためです。

 customerfirstname.DataBindings.Add(new Binding("Text", Program.tblNamesBS2, "FirstName"));    
  customerlastname.DataBindings.Add(new Binding("Text", Program.tblNamesBS2, "LastName"));
于 2012-07-25T08:31:16.493 に答える
3

このエラーのもう 1 つの理由は、バインド先のプロパティがプライベートである場合です。

于 2020-03-17T16:14:43.220 に答える
0

私は同じ問題を抱えていました。それは、両方のテーブルの列の列名が同じだったためです。例えば:

  1. 私のデータベース名はAssets;
  2. 最初のテーブル名はPropertyで、2 番目のテーブル名はPlants;
  3. 両方のテーブルの最初の列名はasset_number; 上記のエラーが発生しましたが、私のものはasset_number.

解決策: テーブルの列名を に変更しましたPlantsasset_number1、問題はありませんでした。Plants(新しい列をやり直すには、古い列をすべて削除する必要がありました。)

于 2015-11-21T22:29:13.813 に答える