网格视图外键表示
Posted
技术标签:
【中文标题】网格视图外键表示【英文标题】:Grid-view Foreign Key representation 【发布时间】:2014-01-30 11:50:20 【问题描述】:我一直在尝试从另一个表中插入一个值,同时保留原始表的值,以便让用户清楚他们正在选择什么(很抱歉,这很难解释)。
这是我当前的 sql 源和选择命令: 选择命令:# 为了清楚说明,下面的代码显然是问题所在! #
SelectCommand="SELECT c.ClassID, c.TeacherID, c.ClassYear, c.SubjectID, t.TeacherForename FROM (Class c INNER JOIN Teacher t ON c.TeacherID = t.TeacherID), s.SubjectName FROM (Class c INNER JOIN Subject s ON c.SubjectID = s.SubjectID)"
SQL 数据源的:
<asp:TemplateField HeaderText="SubjectName">
<ItemTemplate>
<%# Eval("SubjectName")%>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="DropDownList2" runat="server"
DataSourceID="SqlDataSource2" DataTextField="SubjectName"
DataValueField="SubjectID" SelectedValue='<%# Bind("SubjectID") %>'>
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>"
SelectCommand="SELECT Subject.SubjectName, Class.SubjectID FROM (Class INNER JOIN Subject ON Class.SubjectID = Subject.SubjectID)">
</asp:SqlDataSource>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="TeacherName">
<ItemTemplate>
<%# Eval("TeacherForename") %>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="DropDownList1" runat="server"
DataSourceID="SqlDataSource3" DataTextField="TeacherForename"
DataValueField="TeacherID" SelectedValue='<%# Bind("TeacherID") %>'>
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource3" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>"
SelectCommand="SELECT Teacher.TeacherForename, Class.TeacherID FROM (Class INNER JOIN Teacher ON Class.TeacherID = Teacher.TeacherID)">
</asp:SqlDataSource>
</EditItemTemplate>
</asp:TemplateField>
我希望的最终结果是,SubjectID 和 TeacherID 的当前值将在网格视图中通过包含 SubjectName 和 TeacherForename 值的下拉选项表示(当用户希望编辑它们时)(我希望这会让它更清楚)。
但它说我的选择命令中的 FROM 语句有问题,我尝试了这个选择命令,只使用 TeacherID 到 TeacherForename,它工作正常,但是一旦我将我的 SubjectID 添加到 SubjectName,它就会产生一个错误,我不能我自己的缘故找到它。
任何帮助将不胜感激!
【问题讨论】:
【参考方案1】:试试这个查询..
SELECT
c.ClassID
, c.TeacherID
, c.ClassYear
, c.SubjectID
, t.TeacherForename
, s.SubjectName
FROM Class c
INNER JOIN Teacher t ON c.TeacherID = t.TeacherID
INNER JOIN Subject s ON c.SubjectID = s.SubjectID
【讨论】:
我在 VB 中,但没有用 :/ 但是谢谢,还有其他信息可以提供帮助吗?以上是关于网格视图外键表示的主要内容,如果未能解决你的问题,请参考以下文章