oledb异常:数据库引擎无法锁定表

时间:2012-10-27 06:04:00

标签: c# ms-access ms-access-2007 oledb oledbexception

我有一个与Access数据库交互的C#应用​​程序 当我执行OleDbCommand对象ALTER表和ADD新列时,我收到错误:

  

OleDbException:数据库引擎无法锁定表,因为它已被其他人或进程使用。

虽然我可以成功操作我的数据。但是,当我直接在MS Access中执行查询时,它可以正常工作。

注意:我的数据库已关闭,没有人或进程正在使用它。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

试试这个

使用以下连接字符串

db.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\<Your database name>;Persist Security Info=False;")

以及以下附加属性

db.Properties("Jet OLEDB:Connection Control") = 1

简而言之,您需要以独占模式打开数据库以进行alter table查询。 或者您也可以在c#

中按以下方式设置此属性
CN.Mode =adModeShareExclusive

我没有测试过代码,但它应该适合你。