按条件查询实现

第一种:"sql += "形式

 string sql = string.Format(@"select s.ID, s.Name,s.CustomerNO, s.ShopNO ,s.Mobile,s.CustomerLevel,s.Points,s.Maobi,s.NickName,s.CreateTime,s.LoginID,
                                                s.Birthday,s.BirthdayType,s.Email,s.QQ,s.IDCard,s.TermOfValidity,s.Sex,s.Origin
                                           from cus_customer s
                                           Where 1=1  ");
            if (cus.IsNotNullNorEmptyNorWhitespace())
                sql += string.Format(" And CustomerNO ='{0}'", cus);

            if (shopNo != default(int))
                sql += string.Format(" And s.ShopNO ='{0}'", shopNo);

            if (name.IsNotNullNorEmptyNorWhitespace())
                sql += string.Format(" And Name = '{0}'", name);

            if (mobile.IsNotNullNorEmptyNorWhitespace())
                sql += string.Format(" And Mobile = '{0}'", mobile);

            var oResult = dal.GetAllBySql(sql) ;

第二种 where 后面并列

 string sql = string.Format(@" SELECT s1.ID,s1.FmcgNO,s1.Name,s2.Barcode,s4.Name Category 
            FROM base_fmcg s1
            INNER JOIN base_goods_info_additional s2 ON s1.FmcgNO=s2.GoodsNO 
            INNER JOIN base_goods_info s3 ON s2.GoodsInfoNO=s3.GoodsInfoNO
            INNER JOIN base_goods_category s4 ON s3.CategoryNO =s4.CategoryNO
            WHERE s1.ShopNo={0} {1} {2}",
            shopNO
,
string.IsNullOrEmpty(fmcgName) ? "" : string.Format(@" AND s1.Name like '%{0}%'", fmcgName)
, categoryNO
== default(int) ? "" : string.Format(@" AND (s4.CategoryNO={0} OR s4.Path LIKE '%,{0},%')", categoryNO)); var fmcgModels = FcmgDAL.GetInstance().GetAllBySql(sql).Data as IEnumerable<FmcgViewModel>;

第三种:赋值时直接判断

string payInfoSql = string.Format(@"
                                   INSERT INTO dd_sales_pay_info
                                               (ID,OrderNO,PayTypeID,CardID,YSMoney,UseIntegral, ZFMoney,ShopNO,CreateMan,Status,Remark)
                                    select '{5}','{0}','{1}',{2},YSMoney,'0','{3}',ShopNO,'{4}','1','{6}' 
                                    from dd_sales_order where OrderNO='{0}'",
                                    orderNo
                     , payTypeId
, payTypeId
== 16 ? customerNo.ToString() : string.Format(@"'{0}'", serialNumber)
, money
, customerNo
, Guid.NewGuid().ToString()
, orderType == (int)OrderOrigin.APP升级VIP ? "APP升级VIP" : "APP充值");

第四种

posted @ 2018-03-30 09:53  墨竹daisy  阅读(60)  评论(0)    收藏  举报