【问题标题】:How to get values from 'distinct' column?如何从“不同”列中获取值?
【发布时间】:2014-02-13 10:16:25
【问题描述】:

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

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

-> 在页面加载时,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 中选择汽车,则相应的公司名称应显示在列表框 2 中。但是我得到的只有本田在我的 listbox2 上,没有得到宝马。

我猜这些事情的发生只是因为“不同”。但我不知道该怎么做。希望不会让您感到困惑。因此,任何帮助都会对我更有帮助,并在此先感谢您。

更新

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

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

【问题讨论】:

  • 您能否提供用于获取公司名称的查询?
  • 我添加了查询@VitapRamdevputra
  • 不是那个,提供您在传递产品名称时用于检索公司名称的查询,
  • @Guru 查看我更新的问题。我在更新字段下添加了查询。
  • Krishy,应该有一个代表您的产品的唯一值 类似于产品代码的东西,并且应该用作公司名称表的外键,然后只能为每个产品唯一地检索。

标签: c# sql winforms ado.net


【解决方案1】:

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

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

我得到了你需要的输出..

【讨论】:

    【解决方案2】:

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

    Select Distinct Productname from database
    

    当 Listbox1 上的 Selected Item 发生更改时,您需要运行下面的查询来获取公司名称并填充 列表框2:

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

    如果你得到一些有线结果,你需要调查什么是Listbox1.selectedItem

    【讨论】:

    • 我已经尝试过了。我可以找回本田,但没有得到宝马。我需要显示与特定产品名称相关联的所有公司。我希望你现在明白了。
    • Listbox1.selectedItem 的值是多少?
    • 如上所述,我使用 distinct 将值检索到 listbox1。所以我只有汽车和自行车。在这里,如果我选择汽车,那么 listbox2 应该检索与所选产品名称匹配的公司名称(宝马和本田)。
    • 在我更新答案时尝试使用 UPPER 函数,让我知道结果
    • 我已经尝试过使用你的方法,但它不起作用。仍然只得到最后一个值,即本田只显示。
    猜你喜欢
    • 2019-12-01
    • 2023-03-08
    • 2017-03-29
    • 2017-08-25
    • 2018-03-03
    • 2013-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多