DataBinding:不包含具有名称'(columnName)'的属性

时间:2011-09-29 14:43:33

标签: c# asp.net data-binding

我刚刚完成了一件事,想出了数据绑定的另一个问题。

我刚刚实现了一个连接2个表的select语句,所以在我的asp页面上,我可以查看第二个表中的一列,看看是否有正在进行的集成,并改变该注释的结果

我已经看过类似的问题并尝试了解决方案,但它对我没用。确切的错误消息是:

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

选择声明:

SELECT productid, 
       productname, 
       productsku, 
       quantity, 
       productprice, 
       productprice * quantity AS totalprice, 
       shoppingcartrecid, 
       uom, 
       packingslip, 
       logodesignnumber, 
       customtext, 
       nametext, 
       extracharge, 
       custitem, 
       t1.catalogtype, 
       catalogid, 
       relatedchargeid, 
       upsflag 
FROM   shoppingcart t1 
       INNER JOIN itemcatalogprofile t2 
         ON t1.catalogtype = t2.catalogtype 

我在哪里使用它:

<asp:HyperLink ID="HyperLink" runat="server" style="cursor:pointer; text-decoration:none;"
 NavigateUrl='<%# (Eval("Integration").ToString() == "Y") ? String.Format("~integration/vendorframe.aspx?CatalogID={0}",Eval("CatalogID")) : String.Format("~/storefront.aspx?CatalogID={0}",Eval("CatalogID"))%>'>

如果有任何其他信息我需要我会尝试获取它,感谢任何帮助。

由于

答案分为两部分:

首先,我在完成测试查询后运行它时,完全忘记将t2.Integration添加到我的选择中

其次,我正在使用:Eval(“Integration”)。ToString()..我把ToString关闭后,页面开始工作..谢谢大家

3 个答案:

答案 0 :(得分:1)

没有名为Integration的列会导致您遇到错误。

执行INNER JOIN自动不会显示不存在的内容。您需要将SQL语句更改为OUTER JOIN,然后使用ItemCatalogProfile表检查是否存在某个字段。

答案 1 :(得分:1)

您的查询中似乎没有 "Integration" 列。

答案 2 :(得分:1)

看起来select语句中缺少IntegrationCatalogID列。