0

我正在为一堂课建立一个网站,但遇到了一个我找不到解决方案的错误。我在页面上有一个下拉列表,显示客户名称并将所选值设置为从 sqldatasource 中选择的客户 ID(来自 access 数据库的数据表 - fig1(这工作正常,因为我在添加第二个 sqldatasource 之前已经对其进行了测试) . 我向页面添加了一个 datalist 控件,并为要绑定的 datalist 添加了第二个 sqldatasource。我使用配置数据源向导配置了数据源,如图2 所示然后我使用向导测试查询返回的数据并查看它是否有效,向导显示返回了我想要的数据。所以我将数据列表绑定到数据源,现在项目模板(在 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 不包含具有该名称的列。有人可以帮忙吗?

PS 抱歉链接到 imgur ......显然你必须有更高的代表才能发布图片

4

1 回答 1

0

我试过了,生成的 HTML 没有像您的代码中那样以表名作为前缀。

我手动添加了表名并重现了您的错误。

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

Products.Name as Products_Name
于 2013-04-05T00:36:23.057 回答