我在网上了一圈儿 好像都是在asp中用到此方法的在 asp.net中好像没有相关例子 我试着写了下边代码,可是CreateParameter()方法怎么没有有参数的重载呢?
在ACCESS中:
        string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\sexSystem.mdb;";
        OleDbConnection con = new OleDbConnection(connectionString);
        con.Open();
        OleDbCommand cmd = new OleDbCommand();
        cmd.Connection = con;
        cmd.CommandText = "INSERT INTO [userInfo]([userName],[userPwd])VALUES(@userName,@userPwd) ";
        cmd.CreateParameter();
在SQL中:
        string connectionString = "server=(local);uid=sa;pwd=lkf6505563;database=user1";
        SqlConnection con = new SqlConnection(connectionString);
        con.Open();
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = con;
        cmd.CommandText = "INSERT INTO userinfo(userName,userPwd)VALUES(@userName,@userPwd)";
        cmd.CreateParameter();

解决方案 »

  1.   

     "INSERT INTO [userInfo]([userName],[userPwd])VALUES(@userName,@userPwd) "; 
    这里面的@userName,@userPwd两个参数是给CreateParameter()的.
    这样可以有效防址sql注入.还可以防止类型长度产生的相关问题
      

  2.   

    创建具有指定属性的新的 Parameter 对象。语法
    Set parameter = command.CreateParameter (Name, Type, Direction, Size, Value)
    返回值
    返回 Parameter 对象。参数
    Name 
    可选。String 值,包含 Parameter 对象的名称。 
    Type 
    可选。DataTypeEnum 值,指定 Parameter 对象的数据类型。 
    Direction 
    可选。ParameterDirectionEnum 值,指定 Parameter 对象的类型。 
    Size 
    可选。Long 值,指定参数值的最大长度(以字符或字节为单位)。 
    Value 
    可选。Variant,指定 Parameter 对象的值。 
    说明
    使用 CreateParameter 方法创建具用指定的名称、类型、方向、大小和值的新的 Parameter 对象。在参数中传送的任何值都将写入相应的 Parameter 属性。此方法不会将 Parameter 对象自动追加到 Command 对象的 Parameters 集合。这样就可以设置附加属性,在将 Parameter 对象追加到集合时,ADO 将使这些附加属性的值生效。如果在 Type 参数中指定变长数据类型,在将其追加到 Parameters 集合之前必须传送 Size 参数或者设置 Parameter 对象的 Size 属性;否则将发生错误。如果在 Type 参数中指定数字型数据类型(adNumeric 或 adDecimal),也必须设置 NumericScale 和 Precision 属性。
      

  3.   

     3 楼的是 VB语法吧?
    我在C#中好像不行呀!
      

  4.   

    string connectionString = "server=(local);uid=sa;pwd=lkf6505563;database=user1"; 
            SqlConnection con = new SqlConnection(connectionString); 
            con.Open(); 
            SqlCommand cmd = new SqlCommand(); 
            cmd.Connection = con; 
            cmd.CommandText = "INSERT INTO userinfo(userName,userPwd)VALUES(@userName,@userPwd)"; 
            cmd.Parameters.Add(),可用这个方法
      

  5.   

    先声明并配置对象,一个是connection,一个是command,还有个recordset(请在类库那里添加)然后要有数据源,在Control Panel\Administrative Tools那里设置数据源ODBC,接下来给个例子你:
    cmd.ActiveConnection = cnn
    cmd.CommandText = "insert into test(date,number,name) values (?,?,?)"
    cmd.CommandType = adCmdTextcmd.Parameters.Append cmd.CreateParameter("date", adDate, adParamInput)
    cmd.Parameters.Append cmd.CreateParameter("number", adVarChar, adParamInput, 255)
    cmd.Parameters.Append cmd.CreateParameter("name", adWChar, adParamInput, 255)
    最后自己给三个parameter设置值吧