1

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

SELECT title, 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 title;

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

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

但是当我使用“ artikelnummer”时:

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

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

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

任何人??

4

1 回答 1

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")

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

于 2012-06-10T15:14:46.800 回答