Dapper中的多个where条件的 in查询

本文探讨了在SQL查询中处理多个条件和使用动态参数的技巧。作者给出了正确处理复杂where子句的方法,包括使用DynamicParameters和避免类型转换错误,通过示例展示了如何将'ids'作为逗号分隔的字符串转换为参数列表进行有效查询。
摘要由CSDN通过智能技术生成

正常in查询

            string query = @"update house set  UpdateTime=getdate()   where   id in @ids ";
            return con.Execute(query, new
            {
                ids = ids
            }) > 0;

当where条件有多个 或者有判断时
直接 **paras.Add(“ids”, ids);(ids为 ‘2,3,4’ )**会报错
直接 and id in (@ids);
paras.Add(“ids”, ids);
会报 ’ 转化数据类型失败’ 的错误

正确做法是:

string query = @"SELECT 
                            ID, Name, State, Province, City, Area  FROM   house  where State=0";
            DynamicParameters paras = new DynamicParameters();
            if (!string.IsNullOrEmpty(ids))
            { 
                query += @" and id in @ids ";
                paras.Add("ids", ids.Split(','));
            }
            if (!string.IsNullOrEmpty(name))
            {
                query += @" and Name like @Name";
                paras.Add("Name", string.Format("%{0}%", name));
            }
            return con.Query<HouseModel>(query, paras).ToList();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值