string connectionString = WebConfig.GetConnectionStrings("SqlServer");
        string Sql = "INSERT INTO Sys_UserType (UserType_Name) VALUES @p1";        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            try
            {
                SqlCommand cmd = new SqlCommand(Sql, connection);
                cmd.Parameters.Add("@p1", SqlDbType.VarChar);
                cmd.Parameters["@p1"].Value = "fffff";                connection.Open();
                cmd.ExecuteNonQuery();
            }
            catch (Exception)
            {
                throw;
            }
        }

解决方案 »

  1.   

    using(SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString()))
    {
    conn.Open();  
    SqlCommand MyCommand = new SqlCommand("", conn);    
    MyCommand.Parameters.Add(new SqlParameter("@a", SqlDbType.Int));  
    MyCommand.Parameters["@a"].Value = 10;  
    MyCommand.Parameters.Add(new SqlParameter("@b", SqlDbType.Int));  
    MyCommand.Parameters["@b"].Value = 20;  
    MyCommand.Parameters.Add(new SqlParameter("@return", SqlDbType.Int));  
    MyCommand.Parameters["@return"].Direction = ParameterDirection.ReturnValue;  
    MyCommand.ExecuteNonQuery();  
    }
      

  2.   

    错啦,看错了,以为是MySQL.....
      

  3.   

    INSERT INTO Sys_UserType (UserType_Name) VALUES @p1
    改成
    INSERT INTO Sys_UserType (UserType_Name) VALUES (@p1)
    试试
      

  4.   


    string Sql = "INSERT INTO Sys_UserType (UserType_Name) VALUES(@p1)";//加括号
      

  5.   

    应该是@p1没有被括起来,
    每个数据库系统对SQL标准的执行程度都不一样,Access默认使用ANSI-89语法,而MSSQL使用较新的ANSI-92语法,楼主可以在Access界面的工具->选项->表/查询选项卡里的“SQL兼容语法”那里勾选“当前数据库”来开启ANSI-92语法