[英]GridView select statement not showing anything
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" DataKeyNames="Match_ID" DataSourceID="SqlDataSource4">
<Columns>
<asp:BoundField DataField="Team_name" HeaderText="Team_name" SortExpression="Team_name" />
<asp:BoundField DataField="Match_ID" HeaderText="Match_ID" InsertVisible="False" ReadOnly="True" SortExpression="Match_ID" />
<asp:BoundField DataField="Home_team_ID" HeaderText="Home_team_ID" SortExpression="Home_team_ID" />
<asp:BoundField DataField="Away_team_ID" HeaderText="Away_team_ID" SortExpression="Away_team_ID" />
<asp:BoundField DataField="Home_team_score" HeaderText="Home_team_score" SortExpression="Home_team_score" />
<asp:BoundField DataField="Away_team_score" HeaderText="Away_team_score" SortExpression="Away_team_score" />
<asp:BoundField DataField="Game_date" HeaderText="Game_date" SortExpression="Game_date" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource4" runat="server" ConnectionString="<%$ ConnectionStrings:SportsData2ConnectionString %>" SelectCommand="SELECT Team.Team_name, MatchStatistics.Match_ID, MatchStatistics.Home_team_ID, MatchStatistics.Away_team_ID, MatchStatistics.Home_team_score, MatchStatistics.Away_team_score, MatchStatistics.Game_date FROM MatchStatistics INNER JOIN Team ON MatchStatistics.Home_team_ID = Team.Team_ID AND MatchStatistics.Away_team_ID = Team.Team_ID ORDER BY MatchStatistics.Game_date DESC"></asp:SqlDataSource>
我想创建一个显示MatchStatistics内所有记录的GridView。 为此,我需要从Team
表中收集Team_name
。 但是,即使MatchStatistics
具有数据,select语句也不起作用。 它出什么问题了?
我想要的GridView应该是MatchStatistics
所有内容,Home和远程团队ID替换为他们的Team_names
。 与下面类似,但有下拉列表代替主队和客队ID。
我想你想用OR:
FROM MatchStatistics
INNER JOIN Team
ON MatchStatistics.Home_team_ID = Team.Team_ID
**OR** MatchStatistics.Away_team_ID = Team.Team_ID
事实上,你期望球队能够与主场比赛相提并论,我想你想找到任何一支主队或客场球队。
试试这个查询:
SELECT
t1.Team_name AS Home_Team_Name,
t2.Team_name AS Away_Team_Name,
m.Match_ID,
m.Home_team_score,
m.Away_team_score,
m.Game_date
FROM MatchStatistics m
INNER JOIN Team t1 ON t1.Team_ID = m.Home_team_ID
INNER JOIN Team t2 ON t2.Team_ID = m.Away_team_ID
ORDER BY m.Game_date DESC
这应该给你团队名而不是teamId。
请记住删除GridView中的第一个列并更新DataFields和SortExpressions以匹配查询中的新列名:
Match_ID
Home_Team_Name
Away_Team_Name
Home_team_score
Away_team_score
Game_date
您还可以检查我用来测试它的sqlfiddle(MySQL) 。 只要知道我在小提琴中使用了一些稍微不同的列名,如果你觉得需要从中复制一些东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.