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();

    }

我的问题是文字只显示其中一行,我用列表框尝试过这个,所有行都显示了。

有什么建议么?

提前致谢!

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 回答