* Error while accessing data.
操作必须使用一个可更新的查询。
Microsoft JET Database Engine提交按钮代码如下:
private void DoAddTopic(object sender, System.EventArgs e)
{
string strConnect="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath(".\\db\\forum.mdb");
string strInsert="INSERT INTO Topics (TopicSubject,TopicCreateName) VALUES ('"+frmPost.Text+"' , '"+Session["UserName"].ToString()+"')";
try
{
//生成OleDbConnection对象
OleDbConnection objConnect=new OleDbConnection(strConnect);
//打开到数据库的连接
objConnect.Open();
//生成OleDbCommand对象
OleDbCommand objCommand=new OleDbCommand(strInsert,objConnect);
//执行/SQL语句
objCommand.ExecuteNonQuery();
//关闭Connection
objConnect.Close();
//重定向到Topics页面
Response.Redirect("Topics.aspx",true);
}
catch(Exception objError)
{
Response.Write (strInsert);
outError.InnerHtml="<b> * Error while accessing data</b>.<br/>"+objError.Message+"<br/>"+objError.Source;
return;//停止执行
} }我用Response.write (strInsert);
得到插入的语句取值正确!~如(INSERT INTO Topics (TopicSubject,TopicCreateName) VALUES ('objConnect' , '22') )
请问应该如何修改呢?
操作必须使用一个可更新的查询。
Microsoft JET Database Engine提交按钮代码如下:
private void DoAddTopic(object sender, System.EventArgs e)
{
string strConnect="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath(".\\db\\forum.mdb");
string strInsert="INSERT INTO Topics (TopicSubject,TopicCreateName) VALUES ('"+frmPost.Text+"' , '"+Session["UserName"].ToString()+"')";
try
{
//生成OleDbConnection对象
OleDbConnection objConnect=new OleDbConnection(strConnect);
//打开到数据库的连接
objConnect.Open();
//生成OleDbCommand对象
OleDbCommand objCommand=new OleDbCommand(strInsert,objConnect);
//执行/SQL语句
objCommand.ExecuteNonQuery();
//关闭Connection
objConnect.Close();
//重定向到Topics页面
Response.Redirect("Topics.aspx",true);
}
catch(Exception objError)
{
Response.Write (strInsert);
outError.InnerHtml="<b> * Error while accessing data</b>.<br/>"+objError.Message+"<br/>"+objError.Source;
return;//停止执行
} }我用Response.write (strInsert);
得到插入的语句取值正确!~如(INSERT INTO Topics (TopicSubject,TopicCreateName) VALUES ('objConnect' , '22') )
请问应该如何修改呢?
解决方案 »
- 正则菜鸟求救 - -! ¥¥¥¥¥¥¥¥¥¥
- 滚动条不能拉到底部?
- 求教循环暂停执行的方法
- 求asp:Menu漂亮的样式。
- 大家看看这个DataList显示的问题
- 可能是赋值的问题,我也不清楚,头大了
- 问题紧急!!!我做了一个.chm的帮助文件,怎么把它放到我的.aspx页面上啊?
- 在一个FRAME里OPEN一个窗口,如何在关闭这个窗口后自动刷新他得父窗口????????
- 用jmail发邮件 在本地能发 放到服务器上就发送失败
- [编码问题]一个utf-8的cookies值,在相同模板的5个页面,有的正常,有的乱码
- 用DR来显示数据库内容,请问怎么循环比较好?
- User.Identity.Name無法得到數據
我的sql语句是
INSERT INTO aa (aa,bb) VALUES ('objConnect' , '22')
是不是你的其他程序在使用这个数据表
或者是因为其它的问题使数据表被锁死了
资料如下:有几个主要的错误原因:
这个错误发生在当你的程序试图执行更新数据库或其它类似操作时。这是因为
ADO由于以下的几个原因而不能够写数据库造成的。
1。最普遍的原因是匿名用户帐号(IUSR_MACHINE)对该数据库文件没有写权限。
要解决这个问题,在管理器中调整数据库文件的属性,让匿名用户有正确的权限。
当使用ACCESS数据库时,不仅要给文件写的权限,还要给该目录写 的权限,因为
Jet需要在该目录建立一个.ldb文件。
2。第二个原因是数据库没有使用正确的模式打开。应该使用下面的方法打开。
SQL = "UPDATE Products Set UnitPrice = 2;"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Mode = 3 '3 = adModeReadWrite
Conn.Open "myDSN"
Conn.Execute(SQL)
Conn.Close
注意默认的Mode是设置0(adModeUnknown),它是允许更新的。
3。还有可能是在ODBC管理器中将该DSN的只读选项选中。
4。你是在同时更新两个表中的字段,也会出现这个错误信息,解决办法是分开来更新
这两个表中各自字段。
5。当你使用了一个从低版本中(如ACCESS2.0,ACCESS7.0)载入到高版本(ACCESS 2000)
中的查询时,在执行这个查询是会出现该错误。
seehttp://community.csdn.net/Expert/topic/3054/3054501.xml?temp=.4695856