C# 如何从“distinct”列获取值?
这可能是一个简单的问题,以前也有人回答过,但我不知道如何寻找确切的方法 ->我的表格中有两个列表框。一个是产品名称,另一个是公司名称 ->在页面加载时,Listbox1将从databaseProduct name中检索值。从列表框1中选择项目后,应在列表框2中获取相应的公司名称 例如:数据库名为Motor 这是我的表,名为Register,它包含两列C# 如何从“distinct”列获取值?,c#,sql,winforms,ado.net,C#,Sql,Winforms,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读取并获取值。假设您有一个名为database的表!具有Productname、Companyname的结构 在页面加载时获取产品名称的查询为
Select Distinct Productname from database
当Listbox1上的所选项目发生更改时,您需要运行下面的查询以获取公司名称并进行填充
列表框2:
Select Distinct Companyname from database where UPPER(Productname) = UPPER(Listbox1.selectedItem)
您需要调查什么是Listbox1.selectedItem(列表框1.selectedItem),如果您得到一些有线结果。据我所知,有几件事: 我可能是您正在使用Datareader1,而不是从datareader 0开始。 我尝试使用datatable并检查是否在datatable对象中获取所有值。 下面的代码对我有用,我尝试将Product和company列放在同一个表中,并使用下面的查询
"Select Distinct(Companyname) Company from DatabaseTable where Productname = '"+Listbox1.selectedItem.text+"'";
我得到了您需要的输出。您能提供用于获取公司名称的查询吗?我已经添加了@VitapRamdevputraNot查询,请提供您在传递产品名称时用于检索公司名称的查询,@Guru查看我的更新问题。我已经在Update字段下添加了查询。Krishy,应该有一个表示产品的唯一值,类似于产品代码,并且应该在公司名称表的as-foreign-key中使用相同的值,然后只能为每个产品唯一地检索。我已经尝试过了。我可以找回本田,但我没有宝马。我需要显示与特定产品名称相关的所有公司。我希望您现在明白了。Listbox1.selectedItem的值是什么?正如我前面提到的,我使用distinct将值检索到Listbox1中。所以我只会有汽车和自行车。在这里,如果我选择car,那么listbox2应该检索与所选产品名称匹配的companynamesBMW和Honda。尝试使用UPPER函数更新答案,让我知道我使用ur方法尝试过的结果,但它不起作用。仍然只得到最后的值,即本田仅显示。
"Select Distinct(Companyname) Company from DatabaseTable where Productname = '"+Listbox1.selectedItem.text+"'";