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..
and then you are binding your datasource to 'program' like this..
it should like this..
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'.
You will also run into this error if you bind to a NULL object.
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.
I had the same problem and it was because the columns in both my tables had the same column names. For example:
Assets
;Property
and the second table name wasPlants
;asset_number
; It gave the error you describe above, but mine saidasset_number
.Solution: I changed the column names in my table
Plants
toasset_number1
and then it had no problem. (I did have to delete all my old columns inPlants
to redo the new columns.)