使用文字显示查询结果

时间:2013-03-06 12:45:37

标签: c# sql literals sqldatareader

我正在尝试将查询中的多行显示为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 个答案:

答案 0 :(得分:1)

您正在每次迭代时替换Text属性的值:

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

而不是那样,你需要在每次迭代时连接值:

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

在上面的示例中,使用+=会导致附加到usersLeagues.Text的当前值,而不是替换。