当我点击显示按钮时,我正在使用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.
}
不确定任何人都可以提供帮助,如果我注释掉最后两行,它会正常显示。
答案 0 :(得分:10)
如果绑定到NULL对象,也会遇到此错误。
答案 1 :(得分:7)
这意味着您的数据表未找到数据库中的列名LastName。
在您的情况下,您使用ds2填充数据集..
Program.da2.Fill(Program.ds2);
然后你将你的数据源绑定到'program'这样..
Program.tblNamesBS2.DataSource = Program.ds.Tables[0];
它应该是这样的..
Program.tblNamesBS2.DataSource = Program.ds2.Tables[0];
因为在线下你看起来是Program.tblNamesBS2的值,它绑定到'ds' 这就是为什么列不在'ds'中。
customerfirstname.DataBindings.Add(new Binding("Text", Program.tblNamesBS2, "FirstName"));
customerlastname.DataBindings.Add(new Binding("Text", Program.tblNamesBS2, "LastName"));
答案 2 :(得分:2)
此错误的另一个原因是,您要绑定的属性是否为私有。
答案 3 :(得分:0)
我遇到了同样的问题,因为我的两个表中的列都有相同的列名。例如:
Assets
; Property
,第二个表名为Plants
; asset_number
;
它给出了您在上面描述的错误,但是我说asset_number
。解决方案:我将表Plants
中的列名更改为asset_number1
,然后没有问题。 (我必须删除Plants
中的所有旧列以重做新列。)
答案 4 :(得分:0)
我遇到了同样的问题,我必须更改表中的名称但是 我没有更改数据绑定文件中的列名。解决方案是通过替换更改的名称来更改名称。