c# + access
windows xp + NTFS
起初程序运行正常,可以insert和update,一段时间后(此时已经insert成功200次,update成功40次)所有涉及到insert和update的操作全部出现该异常:
未处理 System.Data.OleDb.OleDbException
Message= "操作必须使用一个可更新的查询。 "
Source= "Microsoft JET Database Engine "
ErrorCode=-2147467259
在论坛上翻了一下帖子大多说是权限问题,我的这个应该不是权限的问题。
另外:使用了多线程访问数据库,不知道有没有问题。
------解决方法--------------------------------------------------------
啊?时好时坏啊?
每一次的操作用的对象都是一样的吗?可写的?
前面打开的连接都关闭了吗?
------解决方法--------------------------------------------------------
估计还是连接没关闭或者你的程序在什么地方以独占的方式打开了这个数据吧?
------解决方法--------------------------------------------------------
'操作必须使用一个可更新的查询'
这样的错误 一般是 更新一个已经关闭的连接所引起的
------解决方法--------------------------------------------------------
应该是线程同步的问题...
可以用一个Mutex..
Mutex mx=new Mutex();
在线程中需要调用AddNew方法时这样来用...
for example:
//线程的过程方法中...
mx.WaitOne();
AddNew();
mx.ReleaseMutex();
试试看...
------解决方法--------------------------------------------------------
另外建议如果你的单CPU的话,就没有必要用多线程了...
用多线程效率反而低...
多线程一般用在多CPU条件下,这样才能发挥多线程的真正作用...