我正在制作一个网站,以显示有关游戏的各种统计数据。
我在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函数,但我不知道该怎么做。
答案 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>