我正在尝试将查询中的多行显示为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();
}
我的问题是文字只显示其中一行,我已尝试使用列表框并显示所有行。
有什么建议吗?
提前致谢!
答案 0 :(得分:1)
您正在每次迭代时替换Text
属性的值:
while (dReader.Read())
{
usersLeagues.Text = (dReader["LeagueName"].ToString());
}
而不是那样,你需要在每次迭代时连接值:
while (dReader.Read())
{
usersLeagues.Text += (dReader["LeagueName"].ToString()) + Environment.NewLine;
}
在上面的示例中,使用+=
会导致附加到usersLeagues.Text
的当前值,而不是替换。