建议你调试一下! 检查一下最终生成的sql语句,也就是你的变量sql的值!

解决方案 »

  1.   

    在出错行前面加一句:throw new ApplicationException( sql );看看Sql语句是什么样子
      

  2.   

    跟踪,把sql找出来,到sql server的查询分析器中执行一把
      

  3.   

    谢谢timmy3310(Tim) 的方法,但是还是没有找到方法错误源是:
    select top 2 * from xm_biaoshu where (bsh like @query or xmmc like @query or jfgsmc like @query) and bsh not in (select top 6 bsh from xm_biaoshu where (bsh like @query or xmmc like @query or jfgsmc like @query)) and zt=1 bsh not in (select top 6 bsh from xm_biaoshu where (bsh like @query or xmmc like @query or jfgsmc like @query)) and 是and zt=1 bsh not in.. 那里要改为:and zt=1 and bsh not in...但在程序中对应的那段呢??用什么方法找出来??
      

  4.   

    if (zt>0) 
    {
    if(cnd.Length>0)
    sql +=" and ";
    else
                   sql +=" where ";
    cnd =" zt=1 +"+cnd+"";  //这里,改为cnd =" zt=1 and "+cnd+"";  
    sql +=cnd;
    }