string strSQL = "INSERT INTO man(login,password,bbsid,email,creatime)VALUES(@login,@password,@bbsid,@email,@creatime)";

OleDbCommand cmd = new OleDbCommand(strSQL,objConnection);
cmd.Parameters.Add("@login",OleDbType.VarChar,10);
cmd.Parameters.Add("@password",OleDbType.VarChar,10);
cmd.Parameters.Add("@bbsid",OleDbType.VarChar,20);
cmd.Parameters.Add("@email",OleDbType.VarChar,35);
cmd.Parameters.Add("@creatime",OleDbType.DBTimeStamp,20);cmd.Parameters["@login"].Value = Text_user.Text;
cmd.Parameters["@password"].Value = Text_password.Text;
cmd.Parameters["@bbsid"].Value = Text_bbsid.Text;
cmd.Parameters["@email"].Value = Text_email.Text;
cmd.Parameters["@creatime"].Value = DateTime.Now;

解决方案 »

  1.   

    string strSQL = "INSERT INTO man(login,password,bbsid,email,creatime) VALUES (@login,@password,@bbsid,@email,@creatime)";
    注意中间的空格
      

  2.   

    还是不行啊,在VALUES里的要加@,下面的那些呢。
    能不能给个完整的看看
      

  3.   

    对于OleDb,不能这么写的,应该在sql串用?号代替:string strSQL = "INSERT INTO man(login,password,bbsid,email,creatime)VALUES(?,?,?,?,?)";

    //在写参数的时候,顺序不能错了,要和上面的?号位置对应:OleDbCommand cmd = new OleDbCommand(strSQL,objConnection);
    cmd.Parameters.Add("@login",OleDbType.VarChar,10);
    cmd.Parameters.Add("@password",OleDbType.VarChar,10);
    cmd.Parameters.Add("@bbsid",OleDbType.VarChar,20);
    cmd.Parameters.Add("@email",OleDbType.VarChar,35);
    cmd.Parameters.Add("@creatime",OleDbType.DBTimeStamp,20);cmd.Parameters["@login"].Value = Text_user.Text;
    cmd.Parameters["@password"].Value = Text_password.Text;
    cmd.Parameters["@bbsid"].Value = Text_bbsid.Text;
    cmd.Parameters["@email"].Value = Text_email.Text;
    cmd.Parameters["@creatime"].Value = DateTime.Now;
      

  4.   

    怎么不行????什么错误??还有就是代码的最后要加上cmd.ExecuteNonQuery();
      

  5.   

    如果你用SqlClient的话,那么wj2929(*ヤRěйヤ*) 的写法是正确的。
    在SQL Server中,@号代码变量,@@代表全局变量。
      

  6.   

    噢,我那里都写的很清楚啊,是ACCESS的。OLEDB啊。
    应该怎么写呢?
      

  7.   

    还是不行,帮忙再看看到底是哪里出错了。老是一提交就显示:INSERT INTO讲法错误。
    private void btn_accept_Click(object sender, System.EventArgs e)
    {
    if(Page.IsValid)
    {
    OleDbConnection con = new OleDbConnection(@"Provider = Microsoft.Jet.OLEDB.4.0; data source = D:\TEMP\trynet\ns\nsdata\main.mdb");
    string sql = "INSERT INTO man(login,password,bbsid,email,creatime) VALUES (?,?,?,?,?)";
    OleDbCommand cmd = new OleDbCommand(sql,con);

    cmd.Parameters.Add("@login",OleDbType.VarChar,10);
    cmd.Parameters.Add("@password",OleDbType.VarChar,10);
    cmd.Parameters.Add("@bbsid",OleDbType.VarChar,20);
    cmd.Parameters.Add("@email",OleDbType.VarChar,35);
    cmd.Parameters.Add("@creatime",OleDbType.DBTimeStamp,20); cmd.Parameters["@login"].Value = Text_user.Text;
    cmd.Parameters["@password"].Value = Text_password.Text;
    cmd.Parameters["@bbsid"].Value = Text_bbsid.Text;
    cmd.Parameters["@email"].Value = Text_email.Text;
    cmd.Parameters["@creatime"].Value = DateTime.Now; try
    {
    con.Open();
    cmd.ExecuteNonQuery();
    }
    catch(Exception ex)
    {
    Response.Write(ex.Message);
    Response.End();
    }

    finally
    {
    con.Close();
    }
    Response.Write("a new record has been added");
    Response.End();
    }
    }
      

  8.   

    在OLEDB中不能用我写的那种方式????刚才我特意用ACCESS和OLEDB测试了一下,但能行啊 怎么会不行呢???建议楼主重新用我写的在测试一遍吧如果有什么问题请详细说明