<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 оператор выбора не показывая ничего
Я хочу создать GridView, отображающий все записи внутри MatchStatistics. Для этого мне нужно собрать Team_name
из таблицы Team
. Однако даже когда MatchStatistics
имеет данные, оператор выбора не работает. Что с этим не так?
Мое предназначение GridView должно содержать все содержимое MatchStatistics
с идентификаторами команды «Дома» и «Без полетов», замененными их Team_names
. Аналогично ниже, но с dropdownlists вместо дома и в гостевой команде.
Ваш INNER JOIN кажется немного подозрительным. Он работает, если вы удалите часть 'AND MatchStatistics.Away_team_ID = Team.Team_ID'? Попробуйте запустить ваш запрос в студии управления SQL, чтобы проверить его, прежде чем вводить его в свой код. Кроме того, что означает, что оператор select не работает? вы получаете ошибки? – zgood
Он работает, если я удаляю 'AND MatchStatistics.Away_team_ID = Team.Team_ID', так что мне нужно только одно из этих значений или и то, и другое? Вышеуказанный оператор select не возвращает записей. Я бы не хотел отображать идентификаторы в таблице, а не их имена. –
Мне кажется, что проблема заключается в строке под названием «Team_name», которая будет в объединенной таблице несколько раз, так как вы дважды присоединяетесь к одной и той же таблице, поэтому GridView не будет знать, какой из них показывать. Возможно, это поможет [«Как лучше всего присоединиться к одной таблице дважды»] (http://stackoverflow.com/questions/4267929/whats-the-best-way-to-join-on-the-same- таблица-дважды) – chmodder