要按条件搜索产品列表,但条件个数不定,比如搜索手机产品,客户可能只设定网络为GSM一个条件,也可能再加上价格小于2000条件,总之条件个数不确定,但所有条件都是已知的。要写成一个函数,条件参数怎么写?public List<MobileInfo> Search(/*??????*/) // ????????
{}条件可能是1 个,也可能是5个,如果把每个条件作为一个参数进行函数重载不现象吧,我也不想拼接SQL字符串?该怎么写?
{}条件可能是1 个,也可能是5个,如果把每个条件作为一个参数进行函数重载不现象吧,我也不想拼接SQL字符串?该怎么写?
解决方案 »
- 正则表达式
- 最高分、最低分区别显示(如果有多个的话只显示一个)
- 如何在js中调用C#后台带参函数
- 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败
- 动态Dropdownlist,页面加载时使用Items.Insert失败,在线急等.......
- DataGrid中的CheckBox的Checked值會隨DataGrid的Enabled的更改而更改
- 急急!!!!!!向高手们请教我是实现模糊查询,本来只显一个记录,怎么全部记录都出来了啊!!
- 我在css里面为按钮设置了背景图片,在windowsxp中浏览为什么图片显示不出来?急
- 关于datagrid中增添一个自增的列的问题!
- param asp.net 网页播放器
- 使用SQL语句和存储过程!
- 求助!这种Gridview怎么画
{
....
}
public List<MobileInfo> Search(pararms string[] paramList);
调用 Search(filed1, field2);
Search(field2);
Search)field1, field2, field3);
string strWhere="select * from table where 1=1"
if(条件1!=string.empty)
{
strWhere+=条件1
}
if(条件2!=string.empty)
{
strWhere+=条件2
}
....
(1)连接数据库
(2)拼凑查询字符串
string str="select * from 表名 where 1=1";
if(条件1!="")
str=str+" and "+"条件1";
if(条件2!="")
str=str+" and "+"条件2";
if(条件3!="")
str=str+" and "+"条件3";
……
(3)查询
{
string strSql="select * from 表名 where 1=1";
foreach (string strPar in paramList)
{
if (strPar != null && strPar.Trim() != "")
{
strSql += " AND ("+ strPar +") ";
}
}
strSql += " Order By orderField "; // ...
}
Search("field1=100");
Search("field1>100", "field1<200");
Search("field1>100 and field1 <> 102");
Search(new string[]{"field1=100 or field2='ABC'", "field3 like 'A%'"});