比较asp.net中的两个表

时间:2014-01-04 23:27:28

标签: c# asp.net sql linq

我正在制作一个网站,以显示有关游戏的各种统计数据。

我在sql-database中有两个单独的表。一个叫PlayerMatch,另一个叫做Match。

我要比较的两列是PlayerMatch中的TeamId(PlayerMatch.TeamId与Match中的WinningTeamId(Match.WinningTeamId)

为了展示这一切,我制作了一张桌子,我在里面放了一些asp:repeater。 这是其中之一,因为它们基本相同。

<asp:Repeater ID="repHighGPM" runat="server">
     <ItemTemplate>
         <td><a href="Match.aspx?id=<%#Eval("Match.MatchNumber") %>"><%#Eval("Match.MatchNumber") %></a></td>
          <td><%#Eval("Match.WinningTeamId") %></td>
          <td><%#Eval("Name") %></td>
          <td>
               <img src=' <%#Eval("Image") %>' /></td>
          <td><%#Eval("GoldPerMinute") %></td>
      </ItemTemplate>
</asp:Repeater>

现在,问题是,现在它只会显示赢得团队的ID(Match.WinningTeamId)。但如果玩家在那支球队上,那就不行了。所以基本上它只需要检查PlayerMatch.TeamId == Match.WinningTeamId。如果这是真的,它应该写'#34;赢得匹配&#34;,而假将#34;丢失匹配&#34;

有什么想法吗?我知道它应该是某种if-else函数,但我不知道该怎么做。

2 个答案:

答案 0 :(得分:0)

您可以在sql查询中使用内部联接: 为数据源创建一个数据源写入查询后,将数据源添加到转发器DataSourceID =“”....

<asp:Repeater ID="repHighGPM" runat="server" DataSourceID="match">
     <ItemTemplate>
         <td><a href="Match.aspx?id=<%#Eval("Match.MatchNumber") %>"><%#Eval("Match.MatchNumber") %></a></td>
          <td><%#Eval("Match.WinningTeamId") %></td>
          <td><%#Eval("Name") %></td>
          <td>
               <img src=' <%#Eval("Image") %>' /></td>
          <td><%#Eval("GoldPerMinute") %></td>
      </ItemTemplate>
</asp:Repeater>    



    <asp:SqlDataSource ID="match" runat="server" ConnectionString="<%$ ConnectionStrings:database %>" SelectCommand="select m.match number, m.winningTeamID, Name ,Image from Match m inner join
        playermatch p on p.Teamid = m.WinningTeamId"></asp:SqlDataSource>

有关内部联接的更多信息,请阅读本文: http://www.w3schools.com/sql/sql_join_inner.asp

答案 1 :(得分:0)

我用以下解决方案解决了这个问题:

    public string MatchResult (object Result) {
    int id = Convert.ToInt32(Request.QueryString["id"]);
    DOTA2DataContext db = new DOTA2DataContext();
    var Victory = Result;
    var TeamId = db.PlayerMatches.Where(x => x.TeamId == id);
    var WinningTeam = db.Matches.Where(x => x.WinningTeamId == id);
    {
        if (TeamId == WinningTeam)
        { 
            return "Won match";
        }
        else
        {
            return "Lost match";
        }

    }
}

转发器。

<asp:Repeater ID="repHighD" runat="server">
                        <ItemTemplate>
                            <td><a href="Match.aspx?id=<%#Eval("Match.MatchNumber") %>"><%#Eval("Match.MatchNumber") %></a></td>
                            <td><%# MatchResult(Eval("Match.WinningTeamId"))%></td>
                            <td><%#Eval("Hero.Name") %></td>
                            <td>
                                <img src=' <%#Eval("Hero.Image") %>' /></td>
                            <td><%#Eval("Denies") %></td>
                        </ItemTemplate>
                    </asp:Repeater>