DataSource error: “Cannot Bind to property or Colu

2019-02-22 00:27发布

I'm working on a database in C# when I hit the display button I get an error:

Error:
Cannot bind to the property or column LastName on the DataSource. Parameter name: dataMember

Code:

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.
}

Not sure what it means can anyone help, if I comment out the last two lines it will display properly.

标签: c# dataset
4条回答
不美不萌又怎样
2楼-- · 2019-02-22 01:03

it means your datatable is not finding column name LastName which is in your database..

in your case you filling your dataset with ds2..

 Program.da2.Fill(Program.ds2); 

and then you are binding your datasource to 'program' like this..

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

it should like this..

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

because below line you are looking value from Program.tblNamesBS2 which is binded to 'ds' and that's why column are not ther in 'ds'.

 customerfirstname.DataBindings.Add(new Binding("Text", Program.tblNamesBS2, "FirstName"));    
  customerlastname.DataBindings.Add(new Binding("Text", Program.tblNamesBS2, "LastName"));
查看更多
爷、活的狠高调
3楼-- · 2019-02-22 01:13

You will also run into this error if you bind to a NULL object.

查看更多
Fickle 薄情
4楼-- · 2019-02-22 01:16

I run into the same problem where I have to change the name in the table but I haven't change column names in the data binding file. solution was changing the names by replacing the changed name.

查看更多
霸刀☆藐视天下
5楼-- · 2019-02-22 01:17

I had the same problem and it was because the columns in both my tables had the same column names. For example:

  1. My database name was Assets;
  2. The first table name was Property and the second table name was Plants;
  3. The first column names in both the tables were asset_number; It gave the error you describe above, but mine said asset_number.

Solution: I changed the column names in my table Plants to asset_number1 and then it had no problem. (I did have to delete all my old columns in Plants to redo the new columns.)

查看更多
登录 后发表回答