在WinForm中关于ListBox和ComboBox选中项的问题,希望高手指教!

tianliang1 2009-10-29 10:19:39
在一个Form中我有两个ListBox,一个ComboBox,其中都填充了很多项
我想通过Sql数据库从三个控件中获取他们的选中的值组成条件,从数据库中选择查询
Sql语句我能写,可是它不能实现我所有要求,原因是,ListBox和ComboBox我都是用SelectedItem属性实现的
那样我只能实现的三个控件都选择了值后,才能执行程序
而我想实现的是他们三个的组合选择,他又很多种情况,但是,我用了SelectedItem属性后,若那个控件不选择值的话,就会提示错误,我应该怎么做,才能到达我想要的那种功能
希望高手指点迷经!
我在线等待,急,先谢为快!!!
...全文
452 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianliang1 2009-10-29
  • 打赏
  • 举报
回复
看来大家是没有理解我的组合选择
就是有三个ListView
我可能选择其中一个或者其中两个,或者三个都选
我的问题是,我是用这三个ListView的SelectedItem来得到他们的值的,可是当我只选其中一个或者其中两个的时候就要提示错误,我该怎么修改才能正确
tianliang1 2009-10-29
  • 打赏
  • 举报
回复
我知道呀,楼上的大哥们,我不是不能写SQL语句呀,我是说你在条件语句的时候,用了SelectedItem的话
若你不选择这个ListBox的话,就要提示错误,就必须选择这个ListBox的内容才行,可是我我一定要选择
最后在此重申
我不是不会写sql语句,语句我已设计好了,就跟11楼的雷同,不过他的textBox错了
goodluckluxin 2009-10-29
  • 打赏
  • 举报
回复
string sql = "select * from Table where 1=1";
if (textBox1.Selectedvalue != null)
{
sql+=" and 写条件......"
}
if(....以此类推只不过是先做判断后拼sql串啊)
a6711145 2009-10-29
  • 打赏
  • 举报
回复
5 楼的方法就是 加 一个默认的栏 1=1 可以不?
怎么个默认的就是你在组合SQL 的时候 自己去取这一栏的值
tianliang1 2009-10-29
  • 打赏
  • 举报
回复
对了,listbox没有SelectedValue方法吧,我刚看了一下
tianliang1 2009-10-29
  • 打赏
  • 举报
回复
5楼的方法怎么实现,不懂
你说设置一个默认值
怎么搞呀,你说默认值为空吗?
tianliang1 2009-10-29
  • 打赏
  • 举报
回复
SelectedValue应该也会出问题吧,因为系统它要先判断是否Selected了没有,若你用了这个方法,但你又没有选择它的话,一样会提示什么未将对象引用到实例!!!
a6711145 2009-10-29
  • 打赏
  • 举报
回复
丫,貌似有个 selectedvalue 属性吧 用这该不会出问题了哦
a6711145 2009-10-29
  • 打赏
  • 举报
回复

那么你每个控件都新增一个初始栏 就设个默认值 让它 CHECKED 就好了 啊
tianliang1 2009-10-29
  • 打赏
  • 举报
回复
我会写SQL语句,你的思路与我一样,我说的是我从listbox 中获取值,但有的时候我不想从中选择值的话
就要提示错误
出错信息:未将对象应用到实例
大哥,你把我的意思理解错了
a6711145 2009-10-29
  • 打赏
  • 举报
回复
这是个思路啊!!
你要学会举一反三 丫
a6711145 2009-10-29
  • 打赏
  • 举报
回复
sql:
string sql=select * from table;
string sql1=where 1=1;
string sql2=and 1=1;
string sql3=and 1=1;

根据你的 控件的值得情况 分别对sql1,sql2,sql3 进行赋值。

组合最后的SQL string strSql=str+str1+sr2+str3;
tianliang1 2009-10-29
  • 打赏
  • 举报
回复
为什么没有人回我?谁能帮我?
tianliang1 2009-10-29
  • 打赏
  • 举报
回复
我弄出来了,的确是19楼的说法
谢谢你,感谢大家的帮忙
tianliang1 2009-10-29
  • 打赏
  • 举报
回复
我说面说的是19楼的做法
tianliang1 2009-10-29
  • 打赏
  • 举报
回复
感觉说的有道理。我刚才试过了,虽然不提示什么错误
但是,只有这几个Listview选择了才会有结果显示,不然就什么都没有
happy664618843 2009-10-29
  • 打赏
  • 举报
回复
用ArrayList 再循环出来将它赋值就可以了
應燁軍 2009-10-29
  • 打赏
  • 举报
回复
问题应该出在listBox1.SelectedItem.ToString()

如果你的listBox1没选中的话 SelectedItem 是null值 .null值是不能ToString();

所以你可以再取之的时候先判断下是否为null

string listSelectedValue=string.Empty;//默认选中值为空
if(listBox1.SelectedItem!=null){
listSelectedValue= this .listBox1 .SelectedItem.ToString();
}
array1[1]=listSelectedValue;
yuanhuiqiao 2009-10-29
  • 打赏
  • 举报
回复
加个判断有没有选中,选中就读取ListBox的值,没有就不取呗,SQL文也不加
tianliang1 2009-10-29
  • 打赏
  • 举报
回复
如果我只选其中的ListBox中的项,那另外一个ListBox就要提示说:未将对象引用到实例
只有全部都选择的话,才会通过调试!!!但那样功能就太单一了
加载更多回复(3)

110,500

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧