C# 如何使用sql查询将所有列值(已应用distinct)检索到listbox中?
这可能是一个简单的问题,以前也有人回答过,但我不知道如何寻找确切的方法 ->我的表格中有两个列表框。一个是产品名称,另一个是公司名称 ->在页面加载时,Listbox1将从databaseProduct name中检索值。从列表框1中选择项目后,应在列表框2中获取相应的公司名称 例如:数据库名为Motor 这是我的表,名为Register,它包含两列C# 如何使用sql查询将所有列值(已应用distinct)检索到listbox中?,c#,sql,sql-server,ado.net,C#,Sql,Sql Server,Ado.net,这可能是一个简单的问题,以前也有人回答过,但我不知道如何寻找确切的方法 ->我的表格中有两个列表框。一个是产品名称,另一个是公司名称 ->在页面加载时,Listbox1将从databaseProduct name中检索值。从列表框1中选择项目后,应在列表框2中获取相应的公司名称 例如:数据库名为Motor 这是我的表,名为Register,它包含两列 Productname Companyname Car Bmw Bike
Productname Companyname
Car Bmw
Bike Bmw
Car Honda
Bike Honda
我的问题是
我将产品名称详细信息检索到listbox1中,这里的问题是我不想重复相同的项目,所以我使用了Distinct,如下所示
Select Distinct Productname from Register
现在,如果我从列表框1中选择car,则相应的公司名称应显示在列表框2中。但我得到的是我的listbox2上唯一的本田,而不是宝马
这是用于将值检索到listbox2中的查询。我使用datareader从数据库中读取并获取值 我不知道该怎么做。希望我不会把你弄糊涂。因此,任何帮助都会对我更有帮助,请提前感谢。您是否尝试过
Select Companyname from Register
where Productname='"+listbox1.GetItemText(listbox1.SelectedItem)+"'
试试这个
Sqlcommand cmd=new Sqlcommand("Select Companyname from Register where Productname='"+listbox1.selecteditem.toString()+"'",con);
Sqldatareader dr=cmd.Executereader();
listbox2.items.clear();
while(dr.Read())
{
string a=dr['Companyname'].toString();
listbox2.items.add(a);
}
你在用什么
字符串a=dr.GetString0;
listbox2.items.adda
它将只从表中获取第一行
使用
字符串a=dr[companyname].toString;
listbox2.items.adda
这应该可以解决您的问题。只需调试代码,查看查询包含的内容,然后在sql server中获取查询并执行。我使用datareader从数据库中读取并获取值。发布用于读取查询结果集并将其绑定到ListBox2@ChrisL我已经用我使用的查询更新了我的问题。根据您的查询-您没有将字符串a传递给Add,但是,正如您所说,您只得到Honda,那么我假设这是复制/粘贴错误。我建议直接在数据库中运行查询,并检查它们是否按预期返回。是的,这是一个键入错误。根据你的建议,我直接用我的查询在db中进行了尝试,它得到了执行。我得到了宝马和本田。但我没有在前端。我已经尝试了你的方式,但仍然没有改善。我只获取最后一个存储的值。是否已检查查询是否在SQL Server中返回所需的输出?我不需要SQL Server中的。查看我的最新问题。我只想将这些值检索到列表框中。您能分享一下您的表结构吗?从中获取ProductName和table2的表1,即表寄存器。我只有一个表,其中有两列。第一列是Productname,第二列是Companyname。再看看我的问题,你可能会明白我试过什么,我在问什么。。!
Sqlcommand cmd=new Sqlcommand("Select Companyname from Register where Productname='"+listbox1.selecteditem.toString()+"'",con);
Sqldatareader dr=cmd.Executereader();
listbox2.items.clear();
while(dr.Read())
{
string a=dr['Companyname'].toString();
listbox2.items.add(a);
}