C#使用查询中的多行填充标签
C# Populate label with multiple rows from query
我有几行要添加到 winform 的标签中。我的问题是它只显示一行。应该如何修改代码以便显示所有行?我只需要它用于第一部分 'reader.HasRows',对于 'else' 部分它总是一行。该程序检查使用的是外部 ID 还是内部 ID。
我的代码是:
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);
}
}
}
}
}
}
您可以使用 List<> 存储返回的行,然后 concatenate/output 根据需要存储它们。
或者因为这只是一个要连接的简单字符串,所以您可以像这样使用 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();
....
我有几行要添加到 winform 的标签中。我的问题是它只显示一行。应该如何修改代码以便显示所有行?我只需要它用于第一部分 'reader.HasRows',对于 'else' 部分它总是一行。该程序检查使用的是外部 ID 还是内部 ID。
我的代码是:
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);
}
}
}
}
}
}
您可以使用 List<> 存储返回的行,然后 concatenate/output 根据需要存储它们。 或者因为这只是一个要连接的简单字符串,所以您可以像这样使用 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();
....