2012-06-10 46 views
1

我使用C#Visual Studio測試ASP.NET中的數據綁定。但我有一個惱人的問題...要顯示數據庫中的所有產品,我使用帶數據源查詢的轉發器。查詢是:Databinder Eval value.value將不起作用

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

但是,當我使用「產品編號」

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

我得到一個錯誤:數據綁定:'System.Data.Common.DataRecordInternal'不包含名稱爲'Product'的屬性。

我怎麼讀artikelnummer?這對我很重要,因爲product_detailview會從商品編號(artikelnummer in dutch)中加載他的數據。

任何?

回答

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; 

不過,我只看到產品編號返回一次,所以你不該使用它沒有問題。

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

結果集將自動刪除該「產品」。部分作爲列名,所以你不能在綁定方法中使用表名添加列名。