哎 没招!  求点思路

解决方案 »

  1.   

    逐个判断条件内容,有就拼接到sql或者用参数形式,有就为参数赋值
      

  2.   

    高级查询->中间转化->sql语句->sql本质=>
    select * from t_table where id = @id 
    and name = @name
    and age > @age
    and.....
      

  3.   

    Refer:
    http://www.cnblogs.com/insus/articles/1999795.html
      

  4.   

    条件组合就是一种典型的组合模式啊,使用支持组合模式的SQL条件对象,写几万行的条件代码都没有问题(不是SQL几万行)。比如PDF.NET的OQLCompare对象:OQLCompare cmp=new OQLCompare(entity1);
    OQLCompare cmpresult=cmp.Compare(entity1.Field1,">=","aaa") 
    & cmp.Compare(entity1.Field2,"=",123) 
    & ....无限组合下去var list=EntityQuery<Model1>.QueryList(OQL.From(entity).Select().Where(cmpresult).End);
      

  5.   

    拼接sql字符串。
    最好用stringbuilder
      

  6.   

    http://bbs.csdn.net/topics/390407793里面有
      

  7.   

     多谢啊! 我邮箱 [email protected] 
      

  8.   

    拼了之后丢到数据库中用 EXEC ('SQL Text')  的方式不就好了。如果你还要求查询效率,那么自由自己分析好之后,确定下大体语句,然后条件随便拼接就好了。
      

  9.   

    string query = "SELECT * FROM table WHERE 1=1"if(xxx>0)
       query += " and column='" + xxx+ "'";以此类推+= 换成StringBuilder
    也可以去遍历你的条件 拼接出一个where条件 接到你sql上。在没找到更好的方案之前 这个可以满足你的需求 就是太挫了。
      

  10.   

    非常之挫!!你说的这种实在太简单了!都是知道的字段拼接SQL。我需要是如图这种根据动态的字段 动态的操作符。以及根据字段类型,如是string 类型就给文本框 如是datetime类型 就给选择日期。等等等  如张图 。
      

  11.   

    if(@para='select_exhi')--List查询
    begin
    declare @strWhere varchar(4000) 

    set  @strWhere='select a.*,b.* from texhibinfo as a left join EI_CheckProcess as b on a.Step=b.Step where Is_del=0'

    if(@Name_exhibition<>'')--展会名称
    set @strWhere = @strWhere+' and Name_exhibition like ''%'+@Name_exhibition+'%'''
    if(@productno<>'')--展会类别
    set @strWhere = @strWhere+' and productno like ''%'+@productno+'%'''
    set @strWhere=@strWhere+' order by No_exhibition desc '
    exec(@strWhere)
    print(@strWhere)
    end 
    楼主参考一下