【问题标题】:Databinder Eval value.value will not workDatabinder Eval value.value 将不起作用
【发布时间】:2012-06-10 23:14:46
【问题描述】:

我正在使用 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)加载他的数据

有人吗??

【问题讨论】:

    标签: c# sql databinder


    【解决方案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")
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-14
      • 1970-01-01
      • 2019-06-26
      • 2022-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多