关键字 'User' 附近有语法错误。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 关键字 'User' 附近有语法错误。源错误: 
行 234:            {
行 235:                iConn.Close();
行 236:                throw;
行 237:            }
行 238:        }
 
部分代码如下
这是进行数据加入数据库的操作,
        public void Add(Model.BlogUser model)
        {
            StringBuilder strSql = new StringBuilder();
            
            strSql.Append("INSERT   into [User] ([User],Name ,Sex ,Birthday ,School ,FirstAddress ,SecondAddress ,Email ,Pwd ,Date )");
            strSql.Append(" values ( ");
            strSql.Append("' " + model.User + "',");            strSql.Append("' " + model.Name + "',");            strSql.Append("' " + model.sex + "',");
            strSql.Append("' " + model.Birthday+ "',");
            strSql.Append("' " + model.School+ "',");
            
            strSql.Append("' " + model.Fristaddress + "',");
            strSql.Append("' " + model.Secondaddress + "',");
            strSql.Append("' " + model.Email + "'");
            strSql.Append("' " + model.Pwd + "',");
            strSql.Append("' " + model.date.ToString() + "' ");
            strSql.Append(")");
            SQLHelper.ExecuteNonQuery(strSql.ToString());
        }
这是SQLHELER类中的 出现错误源的代码
         /// <summary>
        /// 对连接执行 Transact-SQL 语句并返回受影响的行数。
        /// </summary>
        /// <param name="commandText">SQL语句</param>
        /// <returns>受影响的行数</returns>
        public static int ExecuteNonQuery(string commandText)
        {
            return ExecuteNonQuery(commandText, CONN_STRING, CommandType.Text, (SqlTransaction)null, null);
        }
/// <summary>
        /// 对连接执行 Transact-SQL 语句并返回受影响的行数。
        /// </summary>
        /// <param name="commandText">SQL语句</param>
        /// <param name="connectionString">数据库连接字符串</param>
        /// <param name="commandType">SQL语句的属性,默认值为CommandType.Text</param>
        /// <param name="sqlTransaction">要在 SQL Server 数据库中处理的 Transact-SQL 事务</param>
        /// <param name="parameter">SQL语句参数</param>
        /// <returns>受影响的行数</returns>
        public static int ExecuteNonQuery(string commandText, string connectionString, CommandType commandType, SqlTransaction sqlTransaction, params SqlParameter[] parameter)
        {
            SqlCommand iCommand = new SqlCommand();
            SqlConnection iConn = new SqlConnection(connectionString);
            try
            {
                PrepareCommand(iCommand, commandText, iConn, commandType, sqlTransaction, parameter);
                int iValue = iCommand.ExecuteNonQuery();
                iCommand.Parameters.Clear();
                iConn.Close();
                iConn.Dispose();
                return iValue;
            }
            catch
            {
                iConn.Close();
                throw;
            }
        }
我在进行查询操作的时候是没有任何问题的,但是在添加的时候就老是有错。
求各位大虾指点,有其他需要的说出来 我尽快贴出来

解决方案 »

  1.   

    单步调试 查看strSql 值是多少
    在查询分析器中执行一下看看
      

  2.   

     把[User]变成User 试试呢.. 就是你的 SQL 有问题..才抛出的异常!
      

  3.   

    看到 xxx附近有语法错误这样的提示第一反应就是 sql出错。
      

  4.   

    strSql.Append("'" + model.User + "',");  strSql.Append("'" + model.Name + "',");  strSql.Append("'" + model.sex + "',");
      strSql.Append("'" + model.Birthday+ "',");
      strSql.Append("'" + model.School+ "',");
        
      strSql.Append("'" + model.Fristaddress + "',");
      strSql.Append("'" + model.Secondaddress + "',");
      strSql.Append("'" + model.Email + "'");
      strSql.Append("'" + model.Pwd + "',");
      strSql.Append("'" + model.date.ToString() + "' ");
      strSql.Append(")");
    去掉空格看看  注意各字段类型  INT类型没必要加 ''
      

  5.   

    public void Add(Model.BlogUser model)
      {
      StringBuilder strSql = new StringBuilder();
       
      strSql.Append("INSERT into [User] ([User],Name ,Sex ,Birthday ,School ,FirstAddress ,SecondAddress ,Email ,Pwd ,Date )");
      strSql.Append(" values ( ");
      strSql.Append("' " + model.User + "',");  strSql.Append("' " + model.Name + "',");  strSql.Append("' " + model.sex + "',");
      strSql.Append("' " + model.Birthday+ "',");
      strSql.Append("' " + model.School+ "',");
       
      strSql.Append("' " + model.Fristaddress + "',");
      strSql.Append("' " + model.Secondaddress + "',");
      strSql.Append("' " + model.Email + "'");
      strSql.Append("' " + model.Pwd + "',");
      strSql.Append("' " + model.date.ToString() + "' ");
      strSql.Append(")");
      //这里加一句输出看看
      Response.Write(strSql.ToString());  //然后拿到SQL查询分析器里执行一下,就知道那报错了
      SQLHelper.ExecuteNonQuery(strSql.ToString());
      }
      

  6.   

    public void Add(Model.BlogUser model)
      {
      StringBuilder strSql = new StringBuilder();
       
      strSql.Append("INSERT into [User] ([User],Name ,Sex ,Birthday ,School ,FirstAddress ,SecondAddress ,Email ,Pwd ,Date )");
      strSql.Append(" values ( ");
      strSql.Append("' " + model.User + "',");  strSql.Append("' " + model.Name + "',");  strSql.Append("' " + model.sex + "',");
      strSql.Append("' " + model.Birthday+ "',");
      strSql.Append("' " + model.School+ "',");
       
      strSql.Append("' " + model.Fristaddress + "',");
      strSql.Append("' " + model.Secondaddress + "',");
      strSql.Append("' " + model.Email + "'");
      strSql.Append("' " + model.Pwd + "',");
      strSql.Append("' " + model.date.ToString() + "' ");
      strSql.Append(")");
      //这里加一句输出看看
      Response.Write(strSql.ToString()); //然后拿到SQL查询分析器里执行一下,就知道那报错了
      SQLHelper.ExecuteNonQuery(strSql.ToString());
      }
      

  7.   

    Name 改为[Name]跟user的原理一样。
      

  8.   

    拼接SQL的时候要注意关键字。
    在数据库里变色的都要[]oracle 用''
      

  9.   

    strSql.Append("INSERT into [User] ([User],Name ,Sex ,Birthday ,School ,FirstAddress ,SecondAddress ,Email ,Pwd ,Date )");
      strSql.Append(" values ( ");这里是不是有问题?