如何从'distinct'列中获取值?

时间:2014-02-13 10:16:25

标签: c# sql winforms ado.net

这可能很简单,而且之前已经回答过,但我不知道如何寻找确切的方法。

- >我的表单中有两个列表框。一个是产品名称,另一个是公司名称。

- >在页面加载时,Listbox1将从database(Product name)检索值。从listbox1中选择项目后,应在listbox2中提取相应的公司名称。

例如:数据库名称为Motor

这是我的表名为“Register”,它包含两列,

Productname        Companyname

Car                 Bmw
Bike                Bmw
Car                 Honda
Bike                Honda

我的问题是

我将产品名称详细信息检索到listbox1,这里的事情是我不想重复相同的项目,所以我使用了这样的Distinct,

Select Distinct Productname from Register

现在,如果我从列表框1中选择汽车,则相应的公司名称应显示在listbox2中。但是我的列表框2上只有本田而且没有宝马。

我猜这些事情只是因为'Distinct'而发生。但我不知道该怎么做。希望我不要混淆你。所以任何帮助都会对我更有帮助,并提前感谢。

更新

select Companyname from Register where Productname='"+listbox1.selecteditem+"'

这是用于将值检索到listbox2的查询。我使用datareader来读取和获取值。

2 个答案:

答案 0 :(得分:0)

假设您有一个名为database的表!具有(Productname,Companyname)的结构 查询以获取产品名称(在页面加载时)是

Select Distinct Productname from database

当Listbox1上的Selected Item更改时,您需要运行查询以获取公司名称并填充 Listbox2:

Select Distinct Companyname from database where UPPER(Productname)  = UPPER(Listbox1.selectedItem)

如果您获得某些有线结果,则需要调查Listbox1.selectedItem是什么。

答案 1 :(得分:0)

据我所知,很少有事情:
i)您可能正在使用Datareader(1)而不是使用datareader(0) ii)尝试使用datatable并检查是否在datatable对象中获取了所有值 iii)下面的代码确实适用于我,我尝试将列(产品和公司)放在同一个表中,并使用以下查询..

"Select Distinct(Companyname) Company from DatabaseTable where Productname  = '"+Listbox1.selectedItem.text+"'";

我已经得到你需要的输出..