如何用DropDownList全部选项作为条件进行SQL查询

时间:2022-09-23 22:27:45
请问有没有简单的方法实现将DropDownList下拉列表中的全部选项作为条件进行查询,同时也可以正常的单项查询?

15 个解决方案

#1


一个用 select * from tb where id  in("")
一个用select * from tb where id = 

#2


自己拼字符串咯。
这有什么难的?

#3


用循环拼查询条件字符串吧。


#4


不建议用in

#5


有没有具体方法代码,我的数据类型是uniqueidentifier的。

#6


DropDownList只能选择一项啊,
ListBox可以选择多项的

String sql="";
for(int i = 0;i<ListBox1.Items.Count;i++)
{
 if(ListBox1.Items[i].Selected) sql = " guid='"+ ListBox1.Items[i].Value +"' Or";
}
if(sql!="") sql=" Where " + sql.Substring(0,sql.Length-2);

sql = "select * from table" + sql;

#7


这个不能偷懒的,最终还是要在服务端给提交参数进行检查和组合sql语句,否则就可能被sql攻击了。
我估计LZ的意思是控件值直接生成sql语句吧?太不安全了。

#8


for循环dropdownlist里面所有的项,然后进行字符串的拼接.

#9


string sql="";
str+="string.IsNullOrEmpty(DropDownList.SeletedValue)?"":" and 字段='"+DropDownList.SeletedValue+"'";
遍历DropDownList
foreach(ListItem li in DropDownList.Items) 
{
 sql+=""+",";
}
sql=sql.EndsWith(",")?sql.SubString(0,sql.Length-1):sql;
多条件使用chechboxlist
遍历获取条件

#10


补充说明一下:在DropDownList选项中有全部、选项一、选项二、选项三,当选中全部时包含选项一、选项二和选项三的内容,当然选中选项一或选项二或选项三就是具体某一项的内容。

#11


引用 10 楼 esszy 的回复:
补充说明一下:在DropDownList选项中有全部、选项一、选项二、选项三,当选中全部时包含选项一、选项二和选项三的内容,当然选中选项一或选项二或选项三就是具体某一项的内容。


esszy你什么意思?你可以用DataView.Filter对DataTable进行筛选,把DropDownList选中项放在DataView.Filter里作为条件,全部、单项都可以查呀。

#12


我以前做过同样的DropDownList,效果就是我上面说的那样,是通过Hashtable,然后拼接查询语句等来做的,但我觉得比较麻烦,所以现在与大家一起讨论,能否找出一种更简便的方法来实现同样的效果?

#13


程序就是这样,你还没看到C语言的代码,头会晕的...

#14


没错,C语言代码我也玩过,那是十多年以前的事了,当时在DOS环境下的TC和BC++等编程环境,根本没有现在这样轻松,最怕的是输入代码和调试了,一天也做不了多少事。
对于上面的问题各位能手有没有好的办法呢?如果采用拼接字符串和使用“in”能实现如int型数据类型,但不能实现uniqueidentifier类型的。当然采用其他控件也可以完成类似功能,但我现在是想实现DropDownList的。

#15


该回复于2010-12-07 09:18:13被版主删除

#1


一个用 select * from tb where id  in("")
一个用select * from tb where id = 

#2


自己拼字符串咯。
这有什么难的?

#3


用循环拼查询条件字符串吧。


#4


不建议用in

#5


有没有具体方法代码,我的数据类型是uniqueidentifier的。

#6


DropDownList只能选择一项啊,
ListBox可以选择多项的

String sql="";
for(int i = 0;i<ListBox1.Items.Count;i++)
{
 if(ListBox1.Items[i].Selected) sql = " guid='"+ ListBox1.Items[i].Value +"' Or";
}
if(sql!="") sql=" Where " + sql.Substring(0,sql.Length-2);

sql = "select * from table" + sql;

#7


这个不能偷懒的,最终还是要在服务端给提交参数进行检查和组合sql语句,否则就可能被sql攻击了。
我估计LZ的意思是控件值直接生成sql语句吧?太不安全了。

#8


for循环dropdownlist里面所有的项,然后进行字符串的拼接.

#9


string sql="";
str+="string.IsNullOrEmpty(DropDownList.SeletedValue)?"":" and 字段='"+DropDownList.SeletedValue+"'";
遍历DropDownList
foreach(ListItem li in DropDownList.Items) 
{
 sql+=""+",";
}
sql=sql.EndsWith(",")?sql.SubString(0,sql.Length-1):sql;
多条件使用chechboxlist
遍历获取条件

#10


补充说明一下:在DropDownList选项中有全部、选项一、选项二、选项三,当选中全部时包含选项一、选项二和选项三的内容,当然选中选项一或选项二或选项三就是具体某一项的内容。

#11


引用 10 楼 esszy 的回复:
补充说明一下:在DropDownList选项中有全部、选项一、选项二、选项三,当选中全部时包含选项一、选项二和选项三的内容,当然选中选项一或选项二或选项三就是具体某一项的内容。


esszy你什么意思?你可以用DataView.Filter对DataTable进行筛选,把DropDownList选中项放在DataView.Filter里作为条件,全部、单项都可以查呀。

#12


我以前做过同样的DropDownList,效果就是我上面说的那样,是通过Hashtable,然后拼接查询语句等来做的,但我觉得比较麻烦,所以现在与大家一起讨论,能否找出一种更简便的方法来实现同样的效果?

#13


程序就是这样,你还没看到C语言的代码,头会晕的...

#14


没错,C语言代码我也玩过,那是十多年以前的事了,当时在DOS环境下的TC和BC++等编程环境,根本没有现在这样轻松,最怕的是输入代码和调试了,一天也做不了多少事。
对于上面的问题各位能手有没有好的办法呢?如果采用拼接字符串和使用“in”能实现如int型数据类型,但不能实现uniqueidentifier类型的。当然采用其他控件也可以完成类似功能,但我现在是想实现DropDownList的。

#15


该回复于2010-12-07 09:18:13被版主删除