c#操作access插入失败..急....
protected void btnsubmit_Click(object sender, EventArgs e)
{
string strconn;
string strcomm;
strconn = @ "Provider=Microsoft.Jet.Oledb.4.0;Data Source= "+this .Server .MapPath ( "db/db.mdb ");
strcomm = "insert into user(userName,userpwd) values(@uname,@upwd) ";
OleDbConnection myconn = new OleDbConnection(strconn);
myconn.Open();//打开数据连接
OleDbCommand mycomm = new OleDbCommand(strcomm,myconn );
mycomm.Parameters.Add( "@uname ",this.tbname.Text );
mycomm.Parameters.Add( "@upwd ",this.tbpwd .Text );
mycomm.ExecuteNonQuery();
mycomm.Clone();
myconn.Close();
}
错误提示:
INSERT INTO 语句的语法错误。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息:
System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误。
------解决方案--------------------自己写sql语句吧。
------解决方案--------------------INSERT INTO 语句的语法错误
你可以把sql语句Response.write(sql)出来,放到access里的sql视图里分析一下 啊
------解决方案--------------------显然是这里 values(@uname,@upwd) ";
------解决方案--------------------insert into user(userName,userpwd) values( '@uname ', '@upwd ')
试下呢
------解决方案--------------------楼主要这样声明Command的参数:
MyComm.Parameters.Add( "@uname ",SqlDbType.VarChar,20);
MyComm.Parameters.Add( "@upwd ",SqlDbType.VarChar,20);
MyComm.Parameters[ "@uname "].Value = this.tbname.Text;
MyComm.Parameters[ "@upwd "].Value = this.tbpwd.Text;