按条件查询实现
第一种:"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充值");
第四种