DataSource错误:“无法绑定到属性或列”

时间:2012-07-25 08:24:48

标签: c# dataset

当我点击显示按钮时,我正在使用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.
}

不确定任何人都可以提供帮助,如果我注释掉最后两行,它会正常显示。

5 个答案:

答案 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)

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

  1. 我的数据库名称为Assets;
  2. 第一个表名为Property,第二个表名为Plants;
  3. 两个表中的第一列名称为asset_number; 它给出了您在上面描述的错误,但是我说asset_number
  4. 解决方案:我将表Plants中的列名更改为asset_number1,然后没有问题。 (我必须删除Plants中的所有旧列以重做新列。)

答案 4 :(得分:0)

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