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.
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"));
You will also run into this error if you bind to a NULL object.
I had the same problem and it was because the columns in both my tables had the same column names. For example:
- My database name was
Assets
;
- The first table name was
Property
and the second table name was Plants
;
- 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.)
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.