string db ="data.mdb";  //数据库路径
string connstr,insert;
insert = "Insert Into user(id,password,answer,question,mail) Values(@id,@password,@answer,@question,@mail)";
connstr = "Provider= Microsoft.Jet.OLEDB.4.0;Data Source=" +Server.MapPath(db);
OleDbConnection conn;
OleDbCommand cmd;
conn = new OleDbConnection(connstr);
conn.Open();
cmd = new OleDbCommand(insert,conn);
try
{
cmd.Parameters.Add(new OleDbParameter ("@id",OleDbType.Char));
cmd.Parameters.Add(new OleDbParameter ("@password",OleDbType.Char));
cmd.Parameters.Add(new OleDbParameter ("@answer",OleDbType.Char));
cmd.Parameters.Add(new OleDbParameter ("@question",OleDbType.Char));
cmd.Parameters.Add(new OleDbParameter ("@mail",OleDbType.Char));
cmd.Parameters["@id"].Value = id.Text;
cmd.Parameters["@password"].Value = psw2.Text;
cmd.Parameters["@answer"].Value = answer.Text;
cmd.Parameters["@question"].Value = question.Text;
cmd.Parameters["@mail"].Value = mail.Text;
cmd.ExecuteNonQuery();
conn.Close();
lab.Text="恭喜您!注册成功!";
}
catch
{
lab.Text="此ID已存在!";
}怎么老提示            INSERT INTO 语句的语法错误。 
可是好象都找不到那里错了哦`!!

解决方案 »

  1.   

    insert = "Insert Into user(id,[password],answer,question,mail) Values(@id,@password,@answer,@question,@mail)";
      

  2.   

    由于将在索引、 主关键字、或关系中创建重复的值,请求对表的改变没有成功。 改变该字段中的或包含重复数据的字段中的数据,删除索引或重新定义索引以允许重复的值并再试一次。 
    加了关键  就出现这样的提示~!  好象按下button执行了2次上面的代码一样~~   数据有加入数据库~!!  该怎么解决呀~!
      

  3.   

    你去Access数据库中的SQL语句输入运行可以了,在移到程序上来!
    看看帮助,里面有说关键字的!
      

  4.   

    在acc中那个insert都可以正常执行哦`!换到web页上就不行了~!!!救命呀~~急
      

  5.   

    试试这样写:
    insert = "Insert Into [user] (id,[password],answer,question,mail) Values(@id,@password,@answer,@question,@mail)";