<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