从asp项目中的sqldatasource在datalist中显示数据时出错

时间:2013-04-05 00:10:07

标签: c# asp.net sql sqldatasource

我正在为一个类构建一个网站,并且遇到了一个我无法找到解决方案的错误。我在页面上有一个下拉列表,显示了cutomer名称,并将所选值设置为从sqldatasource中选择的客户ID(来自访问数据库的数据表 - fig1)(这是正常的,因为我在添加之前测试了它第二个sqldatasource)。我向页面添加了一个datalist控件,并为要绑定的datalist添加了第二个sqldatasource。我使用configure数据源向导配置了数据源,如fig2.所示我然后使用向导测试数据由查询返回并看到它工作,向导显示我想要的数据被返回。所以我将datalist绑定到数据源,现在itemtemplate(在html源视图中)包含将显示的数据绑定标签价值观:

Products.Name:
<asp:Label ID="Products_NameLabel" runat="server" Text='<%# Eval("Products.Name") %>' />
<br />
Technicians.Name:
<asp:Label ID="Technicians_NameLabel" runat="server" Text='<%# Eval("Technicians.Name") %>' />
<br />
Incidents.DateOpened:
<asp:Label ID="Incidents_DateOpenedLabel" runat="server" Text='<%# Eval("Incidents.DateOpened") %>' />
<br />
Incidents.DateClosed:
<asp:Label ID="Incidents_DateClosedLabel" runat="server" Text='<%# Eval("Incidents.DateClosed") %>' />
<br />
Incidents.Description:
<asp:Label ID="Incidents_DescriptionLabel" runat="server" Text='<%# Eval("Incidents.Description") %>' />

标签现在绑定到从第二个源返回的数据....或者看起来如此。当我运行它并选择应返回sqldatasource select语句中正在选择的数据的客户时,我的程序崩溃并发出此错误:

  

DataBinding:'System.Data.DataRowView'不包含名为'Products'的属性。

我不明白为什么当我在向导中测试时,当sqldatasource明确返回时,datarowview不包含具有该名称的列。有人可以帮忙吗?

P.S。对不起有关imgur的链接...显然你必须有更高的代表发布图片

1 个答案:

答案 0 :(得分:0)

我尝试了这个,并且生成的HTML没有像代码中的表名前缀。

我手工添加了表名并重现了你的错误。

因此,如果您有类似的重复列名,则需要修改SQL语句以使用别名:

Products.Name as Products_Name