第 1 行: '1' 附近有语法错误。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 第 1 行: '1' 附近有语法错误。源错误: 
行 59:           
行 60: 
行 61:             DbDataReader dr = dbSys.ExecuteReader(permissions.GetQueryStr(strWhere));
行 62:             if (dr.Read())
行 63:             {
 
程序这样时会出现上面的错误
   string UserGroup = Session["UserGroup"].ToString().Trim();
            string GroupMenu = Session["GroupMenu"].ToString().Trim();            strWhere = "";
         
         
//===============注意这里
           strWhere += " and  rg.GroupCode= '" + UserGroup + "' and  rg.MenuCode= '" + GroupMenu + "'";
          
//===========
            DbDataReader dr = dbSys.ExecuteReader(permissions.GetQueryStr(strWhere));
            if (dr.Read())
            {省略如果改成
   string UserGroup = Session["UserGroup"].ToString().Trim();
            string GroupMenu = Session["GroupMenu"].ToString().Trim();            strWhere = "";
           //这里直接给值就可以执行
            strWhere += " and rg.GroupCode = '1' and rg.MenuCode = '21'";         
                      DbDataReader dr = dbSys.ExecuteReader(permissions.GetQueryStr(strWhere));
            if (dr.Read())
            {。省略

解决方案 »

  1.   

    permissions.GetQueryStr函数为
       public string GetQueryStr(string StrTemp)
        {
            string StrSql = " ";
            StrSql += " SELECT rg.* FROM t_sys_r_GroupMenu rg";
            StrSql += " WHERE 1 = 1 " + StrTemp;
                 return StrSql;
        }
    到底哪里出错了
      

  2.   

    你的这个GroupCode字段是类型的吧???是的话,去掉两边的单引号即可。strWhere += " and rg.GroupCode= " + UserGroup + " and rg.MenuCode= '" + GroupMenu + "'";
      

  3.   

    StrTemp中什么内容 把整个的StrSql show出来看看
      

  4.   

    你单步调式下:
    string UserGroup = Session["UserGroup"].ToString().Trim();
    string GroupMenu = Session["GroupMenu"].ToString().Trim();
    这两个变量的值,估计是这两个变量的值不仅包含数字。
      

  5.   


      public string GetQueryStr(string StrTemp)
      {
      string StrSql = " ";
      StrSql += " SELECT rg.* FROM t_sys_r_GroupMenu rg";
      StrSql += " WHERE 1=1 " + StrTemp;
      return StrSql;
      }1=1不要写成 1 = 1中间还空格
      

  6.   

    跟踪出完整的sql语句就知道错在哪了
      

  7.   

    直接到拼接完整的sql语句,复制到sql查询分析器中试一下,一切就OK了.
      

  8.   

    修改了后提示
    异常详细信息: System.Data.SqlClient.SqlException: 第 1 行: ',' 附近有语法错误。
      

  9.   

    断点你的SQL 看看生成之后是什么不就知道了。
      

  10.   

    调试是很好的工具、、看看你的SQL语句肯定错了、
      

  11.   

    断点调试
     strWhere += " and rg.GroupCode= '" + UserGroup + "' and rg.MenuCode= '" + GroupMenu + "'";
    怎么感觉引号是中文的?
      

  12.   

    strWhere += " and rg.GroupCode= ‘" + UserGroup + "’ and rg.MenuCode= '" + GroupMenu + "'";?
      

  13.   

    strWhere="WHERE 1=1";strWhere += " and rg.GroupCode= '" + UserGroup + "' and rg.MenuCode= '" + GroupMenu + "'";