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

不知道这意味着什么,任何人都可以提供帮助,如果我注释掉最后两行,它将正确显示。

4

6 回答 6

13

如果绑定到 NULL 对象,也会遇到此错误。

于 2015-04-29T03:07:12.010 回答
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

此错误的另一个原因是您绑定的属性是否是私有的。

于 2020-03-17T16:14:43.220 回答
1

另一个可能的原因(如果您绑定到一个对象)是您尝试绑定到一个字段,而不是一个属性。

于 2022-02-21T12:19:53.130 回答
0

我遇到了同样的问题,这是因为我的两个表中的列具有相同的列名。例如:

  1. 我的数据库名称是Assets
  2. 第一个表名是Property,第二个表名是Plants
  3. 两个表中的第一列名称是asset_number; 它给出了你上面描述的错误,但我的说asset_number

解决方法:我把表中的列名改成了Plantsasset_number1然后就没有问题了。(我确实必须删除所有旧列Plants才能重做新列。)

于 2015-11-21T22:29:13.813 回答
0

我遇到了同样的问题,我必须更改表中的名称,但我没有更改数据绑定文件中的列名。解决方案是通过替换更改后的名称来更改名称。

于 2018-05-30T04:42:13.580 回答