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")
Набор результатов автоматически удалит "Продукт". часть имени столбца, поэтому вы не можете соединить имена столбцов с именем таблицы в методе привязки.