【问题标题】:DataSource error: "Cannot Bind to property or Column"数据源错误:“无法绑定到属性或列”
【发布时间】:2012-07-23 15:18:38
【问题描述】:

我正在使用 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.
}

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

【问题讨论】:

  • 您检查过姓氏输入正确吗?
  • 表示该表中没有名为LastName的列。
  • 很奇怪,在我的 SQL 服务器管理器上,列名确实是“LastName”,就像我输入的一样。如果我只是注释掉它起作用的最后一行,FirstName 是正确的,我以相同的方式拼写 LastName。
  • Program.tblNamesBS2 的数据源是Program.ds.Tables[0]。但是您已将结果填充到另一个数据集Program.ds2。这是正确的吗?
  • 我有 2 个数据集。 Program.TblNamesBS 是 Program.ds.Tables[0]。我也有 Program.tblNamesBS2 是 Program.ds2.Tables[0]。 No 2 用于我的客户表格,原始表格用于我的联系表格,我使用了相同的方法。

标签: c# dataset


【解决方案1】:

这意味着您的数据表没有找到数据库中的列名 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"));

【讨论】:

  • 为什么会这样?它可以找到名字,并且姓氏拼写正确。
【解决方案2】:

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

【讨论】:

  • 创建对象的新实例并绑定到该实例。
【解决方案3】:

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

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

解决方案:我将表中的列名Plants 更改为asset_number1,然后就没有问题了。 (我确实必须删除 Plants 中的所有旧列才能重做新列。)

【讨论】:

    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

      这个错误的另一个原因是你绑定的属性是私有的。

      【讨论】:

        【解决方案6】:

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

        【讨论】:

          猜你喜欢
          • 2021-04-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多