【问题标题】:DataBinding: 'System.Data.DataRowView' does not contain a property with the name 'ProductID'DataBinding:“System.Data.DataRowView”不包含名为“ProductID”的属性
【发布时间】:2013-07-23 15:05:04
【问题描述】:

朋友们,我已经正确地将下拉列表与数据集绑定,但它给出了这个错误: 我的代码是:

到绑定数据集

 DataSet ds = new ViewAction().GetAllProductInfoData();
            ddlprdctname.DataSource = ds;
            ddlprdctname.DataTextField = "ProductName";
            ddlprdctname.DataValueField ="ProductID";
            ddlprdctname.DataBind();

GetAllProductInfoData() 函数是

 public DataSet GetAllProductInfoData()
        {
            SqlCommand cmd = DataConnection.GetConnection().CreateCommand();
            cmd.CommandText = "Select ProductID ProductName,SubCategory2ID,CompanyID,Price,Quantity,Description from ProductInfo";
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataSet ds = new DataSet();
            da.Fill(ds);
            cmd.Dispose();
            DataConnection.CloseConnection();
            return ds;
        }

什么是错误请帮我解决

【问题讨论】:

    标签: asp.net sql-server-2008 c#-4.0


    【解决方案1】:

    ProductID 之后的查询中缺少逗号。正如所写的那样,将ProductName 理解为ProductID 的返回列名称​​别名,而不是您最可能想要的单独列。

    您所写的查询相当于:

    Select ProductID AS ProductName, SubCategory2ID, ...
    

    【讨论】:

      【解决方案2】:

      您的查询中缺少逗号:

      cmd.CommandText = "Select ProductID, ProductName, ...
      

      没有逗号,查询使用别名ProductName 选择ProductID 列。

      【讨论】:

        【解决方案3】:

        如果您正在使用 gridview 并遇到此错误,您可以简单地从模板中删除不必要的数据。

         <asp:CheckBox runat="server"  />
        

        如上图去掉这个错误。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-08-24
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多