0

asp.net c# でクエリからリテラルに複数の行を表示しようとしています。これを行うための私のコードは次のとおりです。

        protected void Page_Load(object sender, EventArgs e)
    {
        SqlConnection conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["RaiseFantasyLeagueConnectionString"].ConnectionString);
        SqlCommand cmd = new SqlCommand("[dbo].[GetUsersLeagues]", conn);
        cmd.CommandType = CommandType.StoredProcedure;

        string userId = Membership.GetUser().ProviderUserKey.ToString();
        SqlParameter userIDParam = new SqlParameter("@userId", userId);

        cmd.Parameters.Add(userIDParam);

        conn.Open();
        SqlDataReader dReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
        while (dReader.Read())
        {
            usersLeagues.Text = (dReader["LeagueName"].ToString());
        }
        dReader.Close();
        conn.Close();

    }

私の問題は、リテラルが行の 1 つだけを表示していることです。リスト ボックスでこれを試したところ、すべての行が表示されました。

助言がありますか?

前もって感謝します!

4

1 に答える 1

1

Text各反復でプロパティの値を置き換えています。

while (dReader.Read())
{
    usersLeagues.Text = (dReader["LeagueName"].ToString());
}

その代わりに、反復ごとに値を連結する必要があります。

while (dReader.Read())
{
   usersLeagues.Text += (dReader["LeagueName"].ToString()) + Environment.NewLine;
}

上記の例では、 using を使用すると、置換ではなく、+=の現在の値に追加されます。usersLeagues.Text

于 2013-03-06T12:48:55.080 に答える