Databinder Eval value.value不起作用

时间:2012-06-10 15:03:17

标签: c# sql databinder

我正在使用C#Visual Studio在ASP.NET中测试数据绑定。但我有一个恼人的问题......为了显示数据库中的所有产品,我使用带有数据源查询的转发器。查询是:

  

SELECT titel,prijs,Product.artikelnummer,bestandnaam FROM Product INNER JOIN(Foto INNER JOIN Productfoto ON Foto。[foto_id] = Productfoto。[foto_id])ON Product。[artikelnummer] = Productfoto。[artikelnummer] ORDER BY titel ;

因为artikelnummer存在于多个表中,所以我必须在它之前写表名。但是,当我将数据加载到转发器中时,单个名称可以正常工作,例如:

  

DataBinder.Eval(Container.DataItem,“bestandnaam”)

但是当我使用“ artikelnummer”时:

  

DataBinder.Eval(Container.DataItem,“Product.artikelnummer”)

我收到错误: DataBinding:'System.Data.Common.DataRecordInternal'不包含名为'Product'的属性。

我怎么能读到artikelnummer?这对我很重要,因为product_detailview将从文章编号加载他的数据(荷兰的artikelnummer)

任何??

1 个答案:

答案 0 :(得分:2)

如果SQL输出中有多个名称相同(选择部分),请使用别名将它们分开:

SELECT titel, prijs, Product.artikelnummer as Productartikelnummer, bestandnaam FROM Product INNER JOIN (Foto INNER JOIN Productfoto ON Foto.[foto_id] = Productfoto.[foto_id]) ON Product.[artikelnummer] = Productfoto.[artikelnummer] ORDER BY titel;

但是,我只看到 artikelnummer 被退回一次,所以你不应该在使用它时遇到问题。

DataBinder.Eval(Container.DataItem, "artikelnummer")

结果集会自动删除“产品”。列名称的一部分,因此您不能使用绑定方法中的表名来填充列名。