永发信息网

c#中如何实现多条件查询?

答案:4  悬赏:20  手机版
解决时间 2021-02-11 23:31
c#中如何实现多条件查询?
最佳答案
#region 多条件搜索时,使用List集合来拼接条件(拼接Sql)

StringBuilder sql = new StringBuilder("select * from PhoneNum");
List wheres = new List();
if (cboGroup.SelectedIndex != 0)
{
wheres.Add(" ptypeid=" + cboGroup.Text.Split('|')[0]);
}
if (txtSearchName.Text.Trim().Length > 0)
{
wheres.Add(" pname like '%" + txtSearchName.Text.Trim() + "%'");
}
if (txtSearchCellPhone.Text.Trim().Length > 0)
{
wheres.Add(" pcellphone like '%" + txtSearchCellPhone.Text.Trim() + "%'");
}

//判断用户是否选择了条件
if (wheres.Count > 0)
{
string wh = string.Join(" and ", wheres.ToArray());
sql.Append(" where " + wh);
}
#endregion

#region 多条件搜索使用带参数的sql语句
StringBuilder sql = new StringBuilder("select * from PhoneNum");
List wheres = new List();
List listParameter = new List();
if (cboGroup.SelectedIndex != 0)
{
wheres.Add(" ptypeid=@typeid ");
listParameter.Add(new SqlParameter("@typeid", cboGroup.Text.Split('|')[0]));
}
if (txtSearchName.Text.Trim().Length > 0)
{
wheres.Add(" pname like @pname ");
//pname like '%乔%'
//pname liek '%'+@pname+'%'
listParameter.Add(new SqlParameter("@pname", "%" + txtSearchName.Text.Trim() + "%"));
}
if (txtSearchCellPhone.Text.Trim().Length > 0)
{
wheres.Add(" pcellphone like @cellphone ");
listParameter.Add(new SqlParameter("@cellphone", "%" + txtSearchCellPhone.Text.Trim() + "%"));
}

//判断用户是否选择了条件
if (wheres.Count > 0)
{
string wh = string.Join(" and ", wheres.ToArray());
sql.Append(" where " + wh);
}

SqlHelper.ExecuteDataTable(sql.ToString(), listParameter.ToArray());
#endregion
全部回答
前提是你的多条件查询是在什么里面的查询;如果是datagridview中那就是很简单的多条件的查询;如果是在其他的里面就是另外的一种查询的方法用到的是SQL的查询;
string sqlstr = string.format(@"select * from houses where hmoney between '{0}' and '{1}' and harea between '{2}' and '{3}'", min_money, max_money, min_area, max_area); 现改成这种写法,格式一目了然。另外,有一个问题,min_money, max_money, min_area, max_area都用单引号括起来了,这样会转变成字符串,在between..and里面用字符串???是你的本意吗?如果是数值之间的判断,要把单引号去掉!!
public DataSet GetSelectBaseIndex(string Branch, string Name) { string Condition = " where 1=1 "; if (Branch != "") { Condition += " and Branch = '" + Branch.Replace("'", "''") + "' "; } if (Name!= "") { Condition += " and Name= '" + Name.Replace("'", "''") + "' "; } string SelectString = "select * from Table " + Condition + " order by Name"; return SqlHelper.ExecuteDataset(this.connectionString, CommandType.Text, SelectString); } 参考
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
六个星期的奶猫.便秘了.怎么办
炎热、多风的环境可能会减慢光合速率相关解释
请问相亲初次见面都问女孩那放面的话好些该说
歌词“总是不说谎”是出自哪首歌的歌词?唱到
四海旅游咨询处在什么地方啊,我要过去处理事
该药材主产于A.四川、贵州、云南等省区B.贵州
京东厦门浦南配送站在什么地方啊,我要过去处
钟祥诚洁宾馆地址在什么地方,我要处理点事
电脑怎么玩着玩着就进入睡眠模式了?谁知道怎
北岭山庄怎么去啊,有知道地址的么
卧龙锅巴和普通锅巴有什么区别?
紧急处置原则为A.降压B.利尿C.强心D.降颅压E.
今晚什么时候月亮最大
天龙八部,我卡49天山怎么打不同等级同装备宝
患者女,27岁,缺失,固定义齿修复2个月后,
推荐资讯
EMS快递,珠海发货到廊坊市得多长时间???
快乐大本营用来做牛仔裤改造的工具是什么?
狗狗泰迪得了细小,今天输液第三天没有拉血了
庆发茗茶这个地址在什么地方,我要处理点事
美乐家为什么每个月要顾客消费340元
中国石化横县迎宣加油站怎么去啊,有知道地址
谁知道描写风景的对联(要有横批)有哪些,快
最佳大排档怎么去啊,有知道地址的么
格林童趣儿童摄影我想知道这个在什么地方
0.25乘以括号四点吧三减0.85括号
下列过程中,属于化学变化的是D碎鸡蛋壳中加
当你告诉别人自己会讲英语,用英语怎么说
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?