<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>
我想创建一个GridView显示内MatchStatistics所有记录。为此,我需要从Team
表中收集Team_name
。但是,即使MatchStatistics
有数据,select语句也不起作用。它出什么问题了?
我的预期GridView应该是MatchStatistics
的所有内容,主客场球队ID由Team_names
替代。与以下类似,但是用dropdownlists代替主队和客队ID。
你的INNER JOIN似乎有点可疑。如果您删除了AND AND MatchStatistics.Away_team_ID = Team.Team_ID'部分,它会起作用吗?尝试在SQL管理工作室中运行您的查询,然后将其放入代码中进行测试。另外,_ select语句不工作_是什么意思?你有错误吗? – zgood
它工作,如果我删除'AND MatchStatistics.Away_team_ID = Team.Team_ID'所以我只需要这些值或两者之一?我发布的select语句不返回任何记录。我想不在表格中显示ID,而不是他们的名字。 –
在我看来,问题在于名为'Team_name'的行,它将在连接表中多次显示,因为您正在连接同一个表,因此GridView无法知道要显示哪个表。也许这将有助于[“两次加入同一个表的最佳方式”](http://stackoverflow.com/questions/4267929/whats-the-best-way-to-join-on-the-same-表两次) – chmodder