string userName = txtName.Text.Trim();
        string realName = txtRealName.Text.Trim();
        string passWord = Tool.GetMD5("123");        string sql = "INSERT INTO users(username,password,uname) VALUES(@name,@pwd,@uname)";
        OleDbParameter[] parms = new OleDbParameter[] { 
            new OleDbParameter("@name",OleDbType.VarChar,32),
            new OleDbParameter("@pwd",OleDbType.VarChar,32),
            new OleDbParameter("@uname",OleDbType.VarChar,50)
        };        parms[0].Value = userName;
        parms[1].Value = realName;
        parms[2].Value = passWord;        try
        {
            int result = OleDbHelper.ExecuteCommand(sql, parms);
            if (result > 0)
            {
                Alert("用户添加成功,初始密码为123,请及时修改!!!");
            }
            else
            {
                Alert("用户添加失败!!!");
            }
        }
        catch (OleDbException oe)
        {
            Response.Write(oe.Message);
        }//OleDbHelper类 
 /// <summary>
        /// 获得一个唯一的CONNECTION 实例
        /// </summary>
        public static OleDbConnection Connection
        {            get
            {
                string connectionstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + System.Web.HttpContext.Current.Server.MapPath("~/App_Data/db1.mdb");
                if (connection == null)
                {
                    connection = new OleDbConnection(connectionstring);
                    connection.Open();
                }
                else if (connection.State == System.Data.ConnectionState.Closed)
                {                    connection.Open();
                }
                else if (connection.State == System.Data.ConnectionState.Broken)
                {
                    connection.Close();
                    connection.Open();
                }
                return connection;
            }        }
        /// <summary>
        /// 返回执行SQL 语句所影响数据的行数
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public static int ExecuteCommand(string sql,params OleDbParameter[] parms)
        {
            OleDbCommand com = new OleDbCommand(sql, Connection);
            com.Parameters.AddRange(parms);
            int result = com.ExecuteNonQuery();
            return result;
        }
检查不出。
insert跟sqlserver的语法不一样?

解决方案 »

  1.   

     string sql = "INSERT INTO [users]([username],[password],uname) VALUES(@name,@pwd,@uname)";
      

  2.   

    string sql = "....values(?,?,?)";
            OleDbConnection connection = new OleDbConnection();
            connection.ConnectionString = "";
            //注意下面参数的顺序一定要按照sql语句中的插入的列的顺序赋值
            OleDbCommand command = new OleDbCommand(sql, connection);
            command.Parameters.Add("?", OleDbType.LongVarWChar, 60).Value = userName;
            command.Parameters.Add("?", OleDbType.LongVarWChar, 60).Value = password;
    ...    
            connection.Open();
      

  3.   

     string sql = "INSERT INTO users([username],[password],[uname]) VALUES(@username,@pwd,@uname)";
            OleDbParameter[] parms = new OleDbParameter[] { 
                new OleDbParameter("@username",OleDbType.VarChar,32),
                new OleDbParameter("@pwd",OleDbType.VarChar,32),
                new OleDbParameter("@uname",OleDbType.VarChar,50)
            };
      

  4.   

    语法是一摸一样的 ,只是sqlserver数据库灵活些
      

  5.   

    你用了ACCESS的关键字
    关键字要[关键字]