我有一个名为 transaktions 的表,我在其中插入了客户账单和客户编号。我的主键是一个具有身份说明的 int id。我的问题是如何选择包含特定 customer_nr 的所有行并返回所有结果?
现在我正在做:
public string getCustomerTransaktions(string CustNr)
{
using (var cmd = new SqlCommand("select billing_name from [transaktions] where customer_nr = @customer_nr", Connect()))
{
cmd.Parameters.AddWithValue("@customer_nr", custNr);
using (var er = cmd.ExecuteReader())
{
if (er.Read())
{
return (string)er["billing_name"];
}
}
}
return "UNKNOWN";
}
这只会打印与客户编号匹配的第一行,至少还剩下 20 行。有人有什么建议可以帮助我吗? 最好的问候
最佳答案
同意@Niklas 和@Skurmedel 的观点,您都需要使用循环来处理多条记录并将它们整理在一起,然后再将它们作为结果返回。
例如
public List<string> getCustomerTransaktions(string CustNr)
{
List<string> names = new List<string>();
using (var cmd = new SqlCommand("select billing_name from [transaktions] where customer_nr = @customer_nr", Connect()))
{
cmd.Parameters.AddWithValue("@customer_nr", custNr);
using (var er = cmd.ExecuteReader())
{
while(er.Read())
{
names.Add((string)er["billing_name"]);
}
}
}
return names;
}
关于C#数据库选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5700848/