c#中如何实现按条件精确以及模糊查询数据库中的数据

如题所述

你可以参考一下这个方法的判断逻辑
当然具体问题还要具体设计分析

/// <summary>
/// 根据条件查询煤炭供求列表
/// </summary>
/// <param name="SendPlace"></param>
/// <param name="Su_DelFlag"></param>
/// <param name="Su_Qneta"></param>
/// <param name="Su_Vdaf"></param>
/// <param name="Su_milometer"></param>
/// <returns></returns>
public DataSet GetSupplyByType(string SendPlace, string Su_DelFlag, string Su_Qneta, string Su_Vdaf, string Su_milometer)
{
StringBuilder sb = new StringBuilder();
sb.Append("select * from ME_Supply");
sb.Append(" where 1=1 and su_Flag=0");
if (SendPlace.Trim() != "")
{
sb.Append(" and su_SendPlace ='" + SendPlace + "' and 1=1");
}
if (Su_DelFlag.Trim() != "")
{
switch (Su_DelFlag.Trim())
{
case "1":
sb.Append(" and Su_DelFlag <='200' and 1=1");
break;
case "2":
sb.Append(" and Su_DelFlag >='201' and Su_DelFlag <'300' and 1=1");
break;
case "3":
sb.Append(" and Su_DelFlag >='301' and Su_DelFlag <'400' and 1=1");
break;
case "4":
sb.Append(" and Su_DelFlag >='401' and Su_DelFlag <'500' and 1=1");
break;
case "5":
sb.Append(" and Su_DelFlag >='501' and Su_DelFlag <'600' and 1=1");
break;
case "6":
sb.Append(" and Su_DelFlag >='601' and Su_DelFlag <'700' and 1=1");
break;
case "7":
sb.Append(" and Su_DelFlag >='701' and Su_DelFlag <'800' and 1=1");
break;
case "8":
sb.Append(" and Su_DelFlag >='801' and Su_DelFlag <'900' and 1=1");
break;
case "9":
sb.Append(" and Su_DelFlag >='901' and Su_DelFlag <'1000' and 1=1");
break;
case "10":
sb.Append(" and Su_DelFlag >='1000' and 1=1");
break;
}
}
if (Su_Qneta.Trim() != "")
{
switch (Su_Qneta.Trim())
{
case "1":
sb.Append(" and Su_Qneta <='5000' and 1=1");
break;
case "2":
sb.Append(" and Su_Qneta >='5000' and Su_Qneta <'5500' and 1=1");
break;
case "3":
sb.Append(" and Su_Qneta >='5500' and Su_Qneta <'6000' and 1=1");
break;
case "4":
sb.Append(" and Su_Qneta >='6000' and 1=1");
break;
}
//sb.Append(" and Su_Qneta ='" + Su_Qneta + "' and 1=1");
}
if (Su_Vdaf.Trim() != "")
{
switch (Su_Vdaf.Trim())
{
case "1":
sb.Append(" and Su_Vdaf <='20' and 1=1");
break;
case "2":
sb.Append(" and Su_Vdaf >='21' and Su_Vdaf <'30' and 1=1");
break;
case "3":
sb.Append(" and Su_Vdaf >='31' and 1=1");
break;
}
//sb.Append(" and Su_Vdaf ='" + Su_Vdaf + "' and 1=1");
}
if (Su_milometer.Trim() != "")
{
switch (Su_milometer.Trim())
{
case "1":
sb.Append(" and Su_milometer <='1' and 1=1");
break;
case "2":
sb.Append(" and Su_milometer >='1' and Su_milometer <'2' and 1=1");
break;
case "3":
sb.Append(" and Su_milometer >='2' and Su_milometer <'3' and 1=1");
break;
case "4":
sb.Append(" and Su_milometer >='3' and 1=1");
break;
}
//sb.Append(" and Su_milometer =" + Su_milometer);
}

return DbHelperSQL.Query(sb.ToString());
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-04-20
判断出条件 写不同的语句咯
相似回答