0

我想从 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();
         }
      }
   }
}
4

2 回答 2

0

在设置 While 循环之前,请TextBox1.Text=""; 尝试此代码。

TextBox1.Text += dr.GetValue(0).ToString() + " " + dr.GetValue(1).ToString() + 
dr.GetValue(2).ToString()+Enviroment.NewLine;

在您的代码中,您将每一行都分配给 TextBox1,但您要将下一行连接到 TextBox1,所以我将 + 放在相等之前,以便连接所有行。

于 2013-08-02T09:39:45.573 回答
0
string str = "";

while (dr.Read() == true)
         {
           str+= dr.GetValue(0).ToString() + " " + dr.GetValue(1).ToString() + dr.GetValue(2).ToString();
         }

 TextBox1.Text = str;
于 2013-08-02T09:41:54.707 回答