一个数据库表如果有好多查询筛选条件,
而每一种应用又对应不同的筛选条件的组合,
如何设计查询函数?
1.只要一个查询,然后在SQL指令里判断所有条件;
2.针对每一种条件组合,分别设计查询函数;
3.只要一个查询,不筛选任何条件,返回DataSet,然后用用DataSet来筛选。上述哪种较好?
或者有更好的办法?

解决方案 »

  1.   

    也就是在SQL命令之外判断各条件吗?
    这个我有试过,但我做不到参数话,看起来不太规范。
      

  2.   

    拼接也可以参数化,可以在存储中拼接,也可以在CS代码中拼接:
    string mysql="select * from tb where";
    if () mysql+=" p1=@p1";
    if () mysql+=" and p2=@p2";
    if () mysql+=" and p3=@p3;
      

  3.   

    fun(string filter,xxxParameterCollection param);
      

  4.   

    string sql="";
    sql+=条件?"":"";
    自定义查询
    使用Entity SQL的动态查找功能