C# Заполнить метку несколькими строками из запроса - PullRequest
0 голосов
/ 27 марта 2020

У меня есть несколько строк, которые я хочу добавить в метку в моей winform. Моя проблема в том, что он показывает только одну строку. Как изменить код, чтобы все строки были представлены? Мне это нужно только для первой части 'reader.HasRows', для части 'else' это всегда одна строка. Программа проверяет, используется ли внешний или внутренний идентификатор.

Мой код:

private void btnCstID_Click(object sender, EventArgs e)
{
      string groupId = textCstID.Text.Trim();
      string queryStringInt = ("SELECT [Data_Group],[Internal_Customer_ID] FROM [CS_RT_CUSTOMER_DETAILS] WHERE [Customer_ID] ='" + groupId + "' and [Active] = 'Y'");
      string queryStringExt = ("SELECT left([IP_ID],10) FROM [CS_RT_CUSTOMER_DETAILS] WHERE left([IP_ID],10) ='" + groupId + "' and [Active] = 'Y'");
      string connString = @"..";

      using (SqlConnection connection = new SqlConnection(connString))
      {
            using (SqlCommand sqlCommand1 = new SqlCommand(queryStringInt, connection))
            {
                  connection.Open();
                  SqlDataReader reader = sqlCommand1.ExecuteReader();

                  if (reader.HasRows)
                  {
                      while (reader.Read())
                      {
                          description2.Text = String.Format("Customer ID to use: {0} - {1}", reader.GetString(0), reader.GetString(1));

                       }
                   }
                   else
                   {
                       using (SqlCommand sqlCommand2 = new SqlCommand(queryStringExt, connection))
                       {
                            reader.Close();
                            object reader2 = sqlCommand2.ExecuteScalar();
                            {
                                description2.Text = String.Format("Customer ID to use: {0}", reader2);
                            }
                        }
                   }
             }
      }

}

1 Ответ

0 голосов
/ 27 марта 2020

Вы можете использовать List <> для хранения возвращенных строк, а затем объединять / выводить их, как вы sh. Или, поскольку это простая строка, которую нужно объединить, вы можете использовать StringBuilder следующим образом:

....
StringBuilder sb = new StringBuilder();
while (reader.Read())
{
    sb.Append(String.Format("Customer ID to use: {0} - {1};", reader.GetString(0), reader.GetString(1)));
}
description2.Text = sb.ToString();
....
...