我正在使用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)
任何??
答案 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")
结果集会自动删除“产品”。列名称的一部分,因此您不能使用绑定方法中的表名来填充列名。