若输入为空,则此条件没有限制,即默认此条件中全体元组都可以查询,求此sql语句,大概基本格式如下:
sql = “select a,b,c from 表 where id is not null”;//肯定存在的条件
if (参数1 != “”)
{
    sql += “ and 字段1=” + 参数1;
}
if (参数2 != “”)
{
    sql += “ and 字段2=” + 参数2;
}

解决方案 »

  1.   

    sql = “select a,b,c from 表 where 1=1”;//肯定存在的条件 
    if (参数1 != “”) 

        sql += “ and 字段1=” + 参数1; 

    if (参数2 != “”) 

        sql += “ and 字段2=” + 参数2; 
    }

    这样?
      

  2.   

    关键没有明白那个where后面的东西应该写啥
      

  3.   

    或者我可以这样写吗?
    where if (参数1 != “”) 

        sql += “ and 字段1=” + 参数1; 

    if (参数2 != “”) 

        sql += “ and 字段2=” + 参数2; 

    就是where后面直接加if这样可以吗?
      

  4.   

    楼主不如这样select a,b,c from 表 where 字段1=isnull(参数1,字段1) and 字段2=isnull(参数2,字段2)
      

  5.   

    strSql = " select TOP " +
                pageNumAll +
                "  TB_FileInfo.FileName,TB_Store.StoreName,TB_FileInfo.FileType,TB_FileInfo.UpLoadDate,TB_FileInfo.FileState " +
                " from TB_FileInfo left join TB_Store on TB_FileInfo.StoreID = TB_Store.StoreID where 1=1 if(" +
                fileName +
                "!=""){ TB_FileInfo.FileName='" + 
                fileName +
                "' } AND if(" + 
                fileLibrary + 
                "!=""){ TB_FileInfo.StoreID='" + 
                fileLibrary + 
                "' }AND if(" + 
                fileMytimefrom + 
                "!="") {TB_FileInfo.UpLoadDate >='" + 
                fileMytimefrom + 
                "'} AND if(" + 
                fileMytimeto + 
                "!="") {TB_FileInfo.UpLoadDate <= '" + 
                fileMytimeto + 
                "' }AND TB_FileInfo.FileName NOT IN ( select top " +
                pageNumNotin +
                " TB_FileInfo.FileName from TB_FileInfo left join TB_Store on TB_FileInfo.StoreID = TB_Store.StoreID where 1=1 if(" +
                fileName +
                "!=""){ TB_FileInfo.FileName='" + 
                fileName +
                "' } AND if(" + 
                fileLibrary + 
                "!=""){ TB_FileInfo.StoreID='" + 
                fileLibrary + 
                "' }AND if(" + 
                fileMytimefrom + 
                "!="") {TB_FileInfo.UpLoadDate >='" + 
                fileMytimefrom + 
                "'} AND if(" + 
                fileMytimeto + 
                "!="") {TB_FileInfo.UpLoadDate <= '" + 
                fileMytimeto + 
                "' })"; //SQL语句
    我在vs2005底下这样写了,可是有以下报错:
    错误 1 应输入 ; c:\inetpub\wwwroot\9NiuMDL\Page\Show\MyUpload.aspx.cs 32 17 http://localhost/9NiuMDL/
    …………
      

  6.   

    整个查询函数如下:
     public DataSet CheckMyLoad(string fileName, string fileLibrary, string fileMytimefrom, string fileMytimeto,int pageNum)//与数据库比较,返回比较结果
        {
             int pageNumAll = pageNum * 10;
            int pageNumNotin = (pageNum - 1) * 10;
            string strSql = " select TOP " +
                pageNumAll +
                "  TB_FileInfo.FileName,TB_Store.StoreName,TB_FileInfo.FileType,TB_FileInfo.UpLoadDate,TB_FileInfo.FileState " +
                " from TB_FileInfo left join TB_Store on TB_FileInfo.StoreID = TB_Store.StoreID where 1=1 if(" +
                fileName +
                "!=""){ TB_FileInfo.FileName='" + 
                fileName +
                "' } AND if(" + 
                fileLibrary + 
                "!=""){ TB_FileInfo.StoreID='" + 
                fileLibrary + 
                "' }AND if(" + 
                fileMytimefrom + 
                "!="") {TB_FileInfo.UpLoadDate >='" + 
                fileMytimefrom + 
                "'} AND if(" + 
                fileMytimeto + 
                "!="") {TB_FileInfo.UpLoadDate <= '" + 
                fileMytimeto + 
                "' }AND TB_FileInfo.FileName NOT IN ( select top " +
                pageNumNotin +
                " TB_FileInfo.FileName from TB_FileInfo left join TB_Store on TB_FileInfo.StoreID = TB_Store.StoreID where 1=1 if(" +
                fileName +
                "!=""){ TB_FileInfo.FileName='" + 
                fileName +
                "' } AND if(" + 
                fileLibrary + 
                "!=""){ TB_FileInfo.StoreID='" + 
                fileLibrary + 
                "' }AND if(" + 
                fileMytimefrom + 
                "!="") {TB_FileInfo.UpLoadDate >='" + 
                fileMytimefrom + 
                "'} AND if(" + 
                fileMytimeto + 
                "!="") {TB_FileInfo.UpLoadDate <= '" + 
                fileMytimeto + 
                "' })"; //SQL语句
           
            return dl.RunSql_ds(strSql, "connStrFile");
        }
      

  7.   

    错误 1 应输入 ; c:\inetpub\wwwroot\9NiuMDL\Page\Show\MyUpload.aspx.cs 32 17
    错误 2 应输入 ; c:\inetpub\wwwroot\9NiuMDL\Page\Show\MyUpload.aspx.cs 36 17
    错误 3 应输入 ; c:\inetpub\wwwroot\9NiuMDL\Page\Show\MyUpload.aspx.cs 40 17
    错误 4 应输入 ; c:\inetpub\wwwroot\9NiuMDL\Page\Show\MyUpload.aspx.cs 44 17
    错误 5 应输入 ; c:\inetpub\wwwroot\9NiuMDL\Page\Show\MyUpload.aspx.cs 50 17
    错误 6 应输入 ; c:\inetpub\wwwroot\9NiuMDL\Page\Show\MyUpload.aspx.cs 54 17
    错误 7 应输入 ; c:\inetpub\wwwroot\9NiuMDL\Page\Show\MyUpload.aspx.cs 58 17
    错误 8 应输入 ; c:\inetpub\wwwroot\9NiuMDL\Page\Show\MyUpload.aspx.cs 62 17
    以上是所有错误
      

  8.   

    select *
    from 什么什么就是全部的  吧要不不用from那行,就是所有的
      

  9.   

    像顶楼那样写不是挺好么?where 后面直接来if 的sql 语句?我没见过