DataBinding:'System.Data.DataRowView'不包含名为'ProductID'的属性

时间:2013-07-23 15:05:04

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

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

绑定数据集

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

请问我要解决的错误是什么?

3 个答案:

答案 0 :(得分:3)

ProductID之后,您的查询中缺少逗号。如上所述,理解ProductNameProductID的返回列名别名,而不是您可能想要的单独列。

您所写的查询等同于:

Select ProductID AS ProductName, SubCategory2ID, ...

答案 1 :(得分:3)

您的查询中缺少逗号:

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

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

答案 2 :(得分:0)

如果您正在使用gridview并获得此错误,则只需从模板中删除不必要的数据即可。

 <asp:CheckBox runat="server"  />

如上所示删除此错误。