c# - C# 使用查询中的多行填充标签
问题描述
我有几行要添加到我的 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<> 来存储返回的行,然后根据需要连接/输出它们。或者因为这只是一个要连接的简单字符串,所以您可以使用这样的 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();
....
推荐阅读
- python - 附加到 ElementTree 中的文件(Json 到 XML)
- android - 使用 IdentityServer 登录时 Xamarin Essentials WebAuthenticator NULL ... WebAuthenticatorIntermediateActivity.OnCreate NullReferenceException
- c++ - 使用蓝牙和 TinyML 在 C++ 中为 Arduino 进行线程化的简单示例
- networking - 如何检测数据包是否包含 DSA 标签?
- arrays - 从特定大小的组合中查找唯一分区
- node.js - Ng Serve 为 Ngrx 引发多重语法错误
- mongodb - 在 REST API 中公开 MongoDB 客户端 JavaScript 查找操作查询和选项
- angular - 如何在primeng条形图上自定义数据集
- kubernetes - apis/metrics.k8s.io/v1beta1/nodes 未找到
- python - RuntimeError:梯度计算所需的变量之一已被就地操作修改:[torch.cuda.FloatTensor [1, 64, 7, 7]]