1

asp.netページのC#SQLクエリがあり、ページのセッションに格納されている値(tournyNameと呼ばれる)を使用してデータベースにクエリを実行します。クエリが機能していて、SqlDataReader(myReaderと呼ばれる)を使用してクエリの結果を読み取っています。ただし、ページのHTML領域に表示する結果を取得できません。私は他の人々の質問から見つけたコードのビットをつなぎ合わせてきましたが、この時点でのコードは不完全です。これは次のようになります。

C#(snppit):

    conn.Open();
    query = "SELECT GamePlayer1 AS [Player 1], GamePlayer2 AS [Player 2], GamePlayer1Score AS [Score1], GamePlayer2Score AS [Score2] FROM Games WHERE (TournyName = '@TournyName')";

    com = new SqlCommand(query, conn);

    com.Parameters.Add(new SqlParameter("@TournyName", SqlDbType.VarChar, 200));
    com.Parameters["@TournyName"].Value = Server.HtmlDecode(tournyName.Trim());

    SqlDataReader myReader;
    myReader = com.ExecuteReader();
    myRepeater.DataSource = myReader;
    myRepeater.DataBind();

そして、結果を表示したい私のHTML:

<asp:Repeater id="myRepeater" runat="server">
<HeaderTemplate><table border="1"></HeaderTemplate>
<ItemTemplate>
<tr><td>
</td>
<td>
<%# Eval('Player 1')%>
</td>
<td>
 <%# Eval('Player 2')%>  
<td>
 <%# Eval('Score1')%>  
</td>
<td>
 <%# Eval('Score2')%>  
</td>
</tr>
</ItemTemplate>
<FooterTemplate></table></FooterTemplate>
</asp:Repeater>

何を試しても、ページが空白で表示されます。誰かが私がこれをどのように表示するかについて私に教えてもらえますか?

4

2 に答える 2

3

いくつかのことがあります:

  • パラメータを使用しているので(良いです!)、SQLクエリでパラメータトークンを引用符でエスケープしないでください。

SELECT GamePlayer1 AS [Player 1]、GamePlayer2 AS [Player 2]、GamePlayer1Score AS [Score1]、GamePlayer2Score AS [Score2] FROM Games WHERE(TournyName = @TournyName)

  • 評価には二重引用符が必要です。<%# Eval("Player 1")%>

また、接続、コマンド、およびSQLReaderを破棄することを忘れないでください。

于 2012-10-04T13:29:28.740 に答える
-1

aspにObjectDataSourceを追加する必要があります。

<asp:ObjectDataSource ID="getPersonsDataSource" runat="server" SelectMethod="GetData" TypeName="Players.Data" />

これが実際にクエリを実行し、Evalメソッドで使用できるようにします。

于 2012-10-04T13:10:23.047 に答える