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' という名前のプロパティが含まれていません。

アーティケル番号はどのように読めますか? 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が返されるのは1回だけなので、問題なく使用できます。

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

結果セットは自動的に「製品」を削除します。列名の一部であるため、バインディングメソッドで列名をテーブル名で固定することはできません。

于 2012-06-10T15:14:46.800 に答える