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 に答える