c# - 如何在我的 C# 程序中断开 Access ?

标签 c# winforms ms-access

我试图像这样压缩我的 Access 2007 数据库:

System.Diagnostics.Process.Start(@"C:\Program Files\Microsoft Office\Office12\msaccess.exe",@"c:\Mydb.mdb /compact "); 

在我的 C# 程序中我得到这个错误:

You attempted to open a database that is already opened exclusively by user on machine . Try again when the database is available. (Error 3356)

我尝试了 Conn.close() 但仍然出现错误

提前致谢。

最佳答案

也许连接池是问题所在? 不完全确定连接池的实现位置(我相信这只是提供程序的一部分,例如 SQL 服务器,因此可能与此问题无关) 但是即使连接对象设置为“关闭”,它也会保持客户端和服务器之间的连接打开。 您可以使用 conn.ClearPool 清除 sql server 连接池 您使用什么让提供商连接到您的数据库? (OLEDB?) 如果是这样尝试 ReleaseObjectPool()

关于c# - 如何在我的 C# 程序中断开 Access ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3396461/

相关文章:

将对象读取为指定类型的 C# 扩展方法

独立于行选择的 C# DataGridView 复选框

c# - WCF post 方法实现

database - 存储由行源查询生成的列表框值

c# - 是否有内置方法来访问项目的 csproj 文件数据?

c# - 使用 SqlDataReader.IsDBNull 时使用列名

c# - e.Data.GetDataPresent 在 WinForms 拖放处理程序中不起作用?

c# - 如何通过单选按钮在sql server中插入值

sql - 使用带有 NOT EXISTS 的 INNER JOIN Access INSERT 语句会给出错误的结果

mysql - 在 MS Access (VBA) 中使用 ADODB 将非 ASCII 插入 MySQL 数据库时出现 "Incorrect string value",但重试有效