string strcmd="Provider=Microsoft.Jet.OleDb.4.0;data source=e:/test.mdb;";
string strcmd1="INSERT INTO book (bookname,price,total) VALUES (wert,'wwq','wqw')";
OleDbConnection ocn=new System.Data.OleDb.OleDbConnection(strcmd);
OleDbCommand insertcmd=new System.Data.OleDb.OleDbCommand(strcmd1,ocn);
ocn.Open();
insertcmd.ExecuteNonQuery(); //折一句话的问题
ocn.Close();
//为什么上面的代码总会报错
错误的代码为:
操作必须使用一个可更新的查询。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错
误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.OleDb.OleDbException: 操作必须使用一个可更新的查询。//郁闷了好久,达人给于解答哈哈
/*Response.Write(ocn.ServerVersion+" "+ocn.State.ToString()+"</br>");
strcmd="SELECT * from login";
oda=new System.Data.OleDb.OleDbDataAdapter(strcmd,ocn);
ds=new DataSet();
oda.Fill(ds,"login");
DataGrid1.DataSource=ds.Tables["login"].DefaultView;
DataGrid1.DataBind(); */
//下面的代码没有问题.
string strcmd1="INSERT INTO book (bookname,price,total) VALUES (wert,'wwq','wqw')";
OleDbConnection ocn=new System.Data.OleDb.OleDbConnection(strcmd);
OleDbCommand insertcmd=new System.Data.OleDb.OleDbCommand(strcmd1,ocn);
ocn.Open();
insertcmd.ExecuteNonQuery(); //折一句话的问题
ocn.Close();
//为什么上面的代码总会报错
错误的代码为:
操作必须使用一个可更新的查询。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错
误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.OleDb.OleDbException: 操作必须使用一个可更新的查询。//郁闷了好久,达人给于解答哈哈
/*Response.Write(ocn.ServerVersion+" "+ocn.State.ToString()+"</br>");
strcmd="SELECT * from login";
oda=new System.Data.OleDb.OleDbDataAdapter(strcmd,ocn);
ds=new DataSet();
oda.Fill(ds,"login");
DataGrid1.DataSource=ds.Tables["login"].DefaultView;
DataGrid1.DataBind(); */
//下面的代码没有问题.
改为:
string strcmd="Provider=Microsoft.Jet.OleDb.4.0;data source=" + server.mappath("e:/test.mdb");
试试
然后
insertcmd.Connection.Open();
insertcmd.ExecuteNonQuery();
insertcmd.Connection.Close();
这样写