繁体   English   中英

GridView select语句没有显示任何内容

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM