我想从SQL Server检索所有行并将其放在多行文本框中。查询执行但它加载最后一行可能是因为它是最后一条记录。我应该有'foreach'声明吗?
private void LoadComments()
{
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["db_TestDBConnectionString"].ConnectionString))
{
using (SqlCommand com = new SqlCommand("LoadNotes", con))
{
com.CommandType = CommandType.StoredProcedure;
con.Open();
com.ExecuteNonQuery();
SqlDataReader dr = com.ExecuteReader();
while (dr.Read() == true)
{
TextBox1.Text = dr.GetValue(0).ToString() + " " + dr.GetValue(1).ToString() + dr.GetValue(2).ToString();
}
}
}
}
答案 0 :(得分:0)
在While循环集TextBox1.Text="";
之前
然后试试这段代码。
TextBox1.Text += dr.GetValue(0).ToString() + " " + dr.GetValue(1).ToString() +
dr.GetValue(2).ToString()+Enviroment.NewLine;
在你的代码中你将每一行分配给TextBox1,但你要将下一行连接到TextBox1,所以我把+之前的值放在一起,这样就可以连接所有的行。
答案 1 :(得分:0)
string str = "";
while (dr.Read() == true)
{
str+= dr.GetValue(0).ToString() + " " + dr.GetValue(1).ToString() + dr.GetValue(2).ToString();
}
TextBox1.Text = str;