asp.net 多条件组合搜索 各位高手: 我现在是有三个下拉菜单,三个textbox,一个搜索按钮,我想是根据填选的不通进行搜索,不用存储过程一个sql语句能实现吗? 要是用程序在后台拼,实在是太多了。有没有更好的方法? 谢谢了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 只要能够分开得到三个下拉菜单和三个textbox的值,用一个sql语句还是能够查询出来的毕竟sql中也是有联合查询的么不过,感觉这样写出来的sql语句应该会很不好写,很累赘 呃就没其他的办法了吗?sql语句实现这么难? 用like,默认%,后台拼也一条语句搞定。 参考:http://www.cnblogs.com/insus/articles/1999795.html 怎么多了?StringBuilder sb = new StringBuilder();sb.Append(" select * from table where 1=1 ");if(!string.isNullorEmpty(textbox1.text)){ sb.Append(" and ....");} 那三个textbox是时间,怎么用like? 如果,我是选择了前两个下拉菜单和第二个输入框。其他的没有输入或选择。sql里都是and,我怎么查?还有我一个一个框判断,是很简单才判断六次。可是被判断的框不是空,可怎么保证其他的框是不是空的呢? 多条件也可以用一个存储过程 。(@cid = '-1' or charindex(@cid,cid)> 0) and (@recom_1 = -1 or @recom_1=recom_1) and(@recom_2 = -1 or @recom_2=recom_2) 可以使用拼接啊 sWhere = 'where 1=1 ';if (a.text <> ''){ sWhere = sWhere + ' and XX = ' + a.text;}if (b.text <> ''){ sWhere = sWhere + ' and XXx = ' + b.text;}...最后组合得到的条件就是你想要的 SQLBuilder sb =new SQLBuilder(); sb.Append("select * from table where(1=1)"); if(this.txtbox1.text!=null&&this.txtbox1.text!=""){ sb.Append("and field="+‘“this.txtbox1.text”')}....... 顶个,还有点就是dropdownlist的话,里面选选项较多用,可以在以上基础上加上 string strWhere = string.Empty;switch (int.Parse(ddlName.SelectedItem.Value)) { case 1: { strWhere = " and 字段1 like '%" + tbox1.Value + "%'"; break; } case 2: { strWhere = " and 字段2 like '%" + tbox2.Value + "%'"; break; } case 3: { strWhere = " and 字段3 like '%" + tbox3.Value + "%'"; break; } case 4: { strWhere = " and 字段4 like '%" + tbox4.Value + "%'"; break; } case 5: { strWhere = " and 字段5 like '%" + tbox5.Value + "%'"; break; } break; } return strWhere; 用LINQ 逐步筛选之,很方便 那么定义一个字符串 string sql="";如果第一个文本框不为空那么sql=sql+下拉列表的值+文本框的值如果第二个文本框不为空 那么sql=sql+下拉列表的值+文本框的值如果第三个文本框不为空 那么sql=sql+下拉列表的值+文本框的值sql的最后结果是一个查询语句的条件部分,并上前边的查表,select * from table where +sql 应该可以搞定 我之前做过类似的查询功能,根据不同的条件去匹配数据,给用户提供了很多的选择项,用户具体选择哪一些条件我们根本不能确定,所以都是传入的一些变量,直接一条SQL语句就可以了,整个条件全图是变量,我记得我QQ空间里面有一篇日志的,你可以留一个邮箱给我,晚上我下班了发给你。 用户从下拉列表里面选择条件,选择了条件之后自动填充到对应的文本框,最后整理为一个变量传入SQL. 请问如何传值,谢谢 大哥,大姐,动态增加控件,循环保存,有代码吗,急? 提个关于ASP.NET Forums论坛与网站整和的问题,散点分 主题皮肤很菜的问题 百分求助 外包项目,仿百度文库实现 ???没分也得问这个问题,太有用了!!! 图片缩略片问题 深圳的.Net程序员请进,给小弟指点迷津。 讲解语句 客户端如何控制服务器端控件,不要让它产生事件响应 求助:c#使链接失效方法
毕竟sql中也是有联合查询的么
不过,感觉这样写出来的sql语句应该会很不好写,很累赘
http://www.cnblogs.com/insus/articles/1999795.html
sb.Append(" select * from table where 1=1 ");
if(!string.isNullorEmpty(textbox1.text))
{
sb.Append(" and ....");
}
(@recom_1 = -1 or @recom_1=recom_1) and
(@recom_2 = -1 or @recom_2=recom_2)
if (a.text <> '')
{
sWhere = sWhere + ' and XX = ' + a.text;
}if (b.text <> '')
{
sWhere = sWhere + ' and XXx = ' + b.text;
}
.
.
.
最后组合得到的条件就是你想要的
sb.Append("select * from table where(1=1)");
if(this.txtbox1.text!=null&&this.txtbox1.text!="")
{
sb.Append("and field="+‘“this.txtbox1.text”')
}
.......
string strWhere = string.Empty;
switch (int.Parse(ddlName.SelectedItem.Value))
{
case 1: { strWhere = " and 字段1 like '%" + tbox1.Value + "%'"; break; }
case 2: { strWhere = " and 字段2 like '%" + tbox2.Value + "%'"; break; }
case 3: { strWhere = " and 字段3 like '%" + tbox3.Value + "%'"; break; }
case 4: { strWhere = " and 字段4 like '%" + tbox4.Value + "%'"; break; }
case 5: { strWhere = " and 字段5 like '%" + tbox5.Value + "%'"; break; }
break;
}
return strWhere;
如果第一个文本框不为空那么
sql=sql+下拉列表的值+文本框的值
如果第二个文本框不为空 那么
sql=sql+下拉列表的值+文本框的值
如果第三个文本框不为空 那么
sql=sql+下拉列表的值+文本框的值
sql的最后结果是一个查询语句的条件部分,
并上前边的查表,
select * from table where +sql 应该可以搞定
我之前做过类似的查询功能,根据不同的条件去匹配数据,给用户提供了很多的选择项,用户具体选择哪一些条件我们根本不能确定,所以都是传入的一些变量,
直接一条SQL语句就可以了,整个条件全图是变量,我记得我QQ空间里面有一篇日志的,你可以留一个邮箱给我,晚上我下班了发给你。