【发布时间】:2014-02-14 20:19:18
【问题描述】:
这可能是一个简单的问题,而且这个问题之前已经回答过,但我不知道如何寻找确切的方法。
-> 我的表单中有两个列表框。一个是产品名称,一个是公司名称。
-> 在页面加载时,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 上,没有得到宝马。
Sqlcommand cmd=new Sqlcommand("Select Companyname from Register where Productname='"+listbox1.selecteditem+"'",con);
Sqldatareader dr=cmd.Executereader();
while(dr.Read())
{
string a=dr.GetString(0);
listbox2.items.add(a);
}
这是用于将值检索到 listbox2 中的查询。我使用 datareader 从数据库中读取和获取值。
我不知道该怎么做。希望不会让您感到困惑。因此,任何帮助都会对我更有帮助,并提前致谢。
【问题讨论】:
-
简单地调试你的代码,看看你查询的内容,然后获取查询并在sql server中执行。
-
"我使用 datareader 从数据库中读取和获取值。"发布您的代码以读取查询结果集并将其绑定到您的 ListBox2
-
@ChrisL 我已经用我使用的查询更新了我的问题。
-
从您的查询中 - 您没有将字符串
a传递给您的 Add(),但是正如您所说的您只是获得 Honda,那么我认为这是复制/粘贴错误。我建议直接在数据库中运行您的查询并检查它们是否按预期返回。 -
是的,这是一个打字错误。根据您的建议,我直接在 db 中尝试使用我的查询,它被执行。我得到了宝马和本田。但我没有进入前端。
标签: c# sql sql-server ado.net