以下方法调用了Sqlhelper.ExecuteNonQuery方法,在Sqlhelper的ExecuteNonQuery方法提示“1 行: '(' 附近有语法错误。”,下面Sqlhelper的ExecuteNonQuery方法错误处有提示请看,谢谢!public void AddCategory(string Uname, string Upwd, string Uemail, char Utype)
        {
            SqlParameter[] parms = new SqlParameter[]{
                new SqlParameter(SQL_PARM_Uname,SqlDbType.NVarChar),
                new SqlParameter(SQL_PARM_Upwd, SqlDbType.NChar),
                new SqlParameter(SQL_PARM_Uemail,SqlDbType.NVarChar),
                new SqlParameter(SQL_PARM_Utype,SqlDbType.Char)
            };
            parms[0].Value = Uname;
            parms[1].Value = Upwd;
            parms[2].Value = Uemail;
            parms[3].Value = Utype;            string sql = "INSERT INTO ('Uname','Upwd','Uemail','Utype') VALUES (SQL_PARM_Uname,SQL_PARM_Upwd,SQL_PARM_Uemail,SQL_PARM_Utype)";
            SqlHelper.ExecuteNonQuery(SqlHelper.connectionString, CommandType.Text, sql, parms);
        }
//以下是Sqlhelper的ExecuteNonQuery定义        /// <summary>
        ///执行一个不需要返回值的SqlCommand命令,通过指定专用的连接字符串。
        /// 使用参数数组形式提供参数列表 
        /// </summary>
        /// <res>
        /// 使用示例:
        ///  int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
        /// </res>
        /// <param name="connectionString">一个有效的数据库连接字符串</param>
        /// <param name="commandType">SqlCommand命令类型 (存储过程, T-SQL语句, 等等。)</param>
        /// <param name="commandText">存储过程的名字或者 T-SQL 语句</param>
        /// <param name="commandParameters">以数组形式提供SqlCommand命令中用到的参数列表</param>
        /// <returns>返回一个数值表示此SqlCommand命令执行后影响的行数</returns>
        public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
        {            SqlCommand cmd = new SqlCommand();            using (SqlConnection conn = new SqlConnection(connectionString))
            {
                //通过PrePareCommand方法将参数逐个加入到SqlCommand的参数集合中
                PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
                int val = cmd.ExecuteNonQuery();  //该行提示出错:1 行: '(' 附近有语法错误。                //清空SqlCommand中的参数列表
                cmd.Parameters.Clear();
                return val;
            }
        }

解决方案 »

  1.   

    INSERT INTO 表名(Uname,Upwd,Uemail,Utype) value(....)
      

  2.   

    你sql语句写的不对.
    表名都没有
      

  3.   

    INSERT INTO 表名(Uname,Upwd,Uemail,Utype) values(....)
      

  4.   

    string sql = "INSERT INTO ('Uname','Upwd','Uemail','Utype') VALUES (SQL_PARM_Uname,SQL_PARM_Upwd,SQL_PARM_Uemail,SQL_PARM_Utype)";错误
      

  5.   


     string sql = "INSERT INTO 表名 (Uname,Upwd,Uemail,Utype) VALUES (SQL_PARM_Uname,SQL_PARM_Upwd,SQL_PARM_Uemail,SQL_PARM_Utype)"; 
      

  6.   

    你自己这句SQl写的有问题:
    第一、没有表名
    第二、好像字段名那里不需要用单引号吧(这个不确定,记得好像不需要)
    应该是insert into table(字段名1,字段名2...) values(value1,value2...);
      

  7.   

    ...SQL语句,字段和值写反了  0 0
      

  8.   

    我改过来了,可是出现
    在此上下文中不允许使用 'SQL_PARM_Uname'。此处只允许使用常量、表达式或变量。不允许使用列名。
      

  9.   

    把ado.net好好看看.
    public void AddCategory(string Uname, string Upwd, string Uemail, char Utype) 
            { 
                SqlParameter[] parms = new SqlParameter[]{ 
                    new SqlParameter("@SQL_PARM_Uname",SqlDbType.NVarChar), 
                    new SqlParameter("@SQL_PARM_Upwd", SqlDbType.NChar), 
                    new SqlParameter("@SQL_PARM_Uemail",SqlDbType.NVarChar), 
                    new SqlParameter("@SQL_PARM_Utype",SqlDbType.Char) 
                }; 
                parms[0].Value = Uname; 
                parms[1].Value = Upwd; 
                parms[2].Value = Uemail; 
                parms[3].Value = Utype;             string sql = "INSERT INTO 表名 (Uname,Upwd,Uemail,Utype) VALUES (@SQL_PARM_Uname,@SQL_PARM_Upwd,@SQL_PARM_Uemail,@SQL_PARM_Utype)"; 
                SqlHelper.ExecuteNonQuery(SqlHelper.connectionString, CommandType.Text, sql, parms); 
            } 
      

  10.   

    得加("@SQL_PARM_Uname" 啊