Databinder Eval value.value не будет работать

Я тестирую базы данных в ASP.NET с C# Visual Studio. Но у меня раздражающая проблема... Чтобы показать все продукты из базы данных, я использую повторитель с запросом источника данных. Запрос:

ВЫБЕРИТЕ titel, prijs, Product.artikelnummer, bestandnaam ИЗ ПРОДУКТА ВНУТРЕННЕЕ СОЕДИНЕНИЕ (Foto INNER JOIN Productfoto ON Foto.[Foto_id] = Productfoto.[Foto_id]) ON Product.[Artikelnummer] = Productfoto.[Artikelnummer] ЗАКАЗАТЬ на титель;

Поскольку artikelnummer существует в нескольких таблицах, я должен написать имя таблицы перед ним. Но когда я загружаю данные в ретранслятор, работают отдельные имена, например:

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

Но когда я использую "artikelnummer":

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

Я получаю сообщение об ошибке: DataBinding: "System.Data.Common.DataRecordInternal" не содержит свойство с именем "Product".

Как я мог прочитать artikelnummer? Это важно для меня, потому что product_detailview будет загружать его данные из номера статьи (artikelnummer на голландском языке)

Кто-нибудь??

1 ответ

Если у вас есть несколько одинаковых имен в выводе 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")

Набор результатов автоматически удалит "Продукт". часть имени столбца, поэтому вы не можете соединить имена столбцов с именем таблицы в методе привязки.

Другие вопросы по тегам