ADOX.Catalog创建Access数据库的问题 : laccdb文件一直存在

还不够格啊 2014-02-07 07:27:26
一个WinForm程序,用ADXO.Catalog创建数据库后,只要这个WinForm不关闭,其数据库的锁定文件laccdb就一直存在,一旦这个WinForm关闭,也即整个程序结束,其laccdb文件就自动被删除。

代码如下:

ADOX.Catalog cat = new ADOX.Catalog();
cat.Create(...);
cat = null;

我想要的是,创建过程结束后,生成accdb文件,laccdb文件自动消失,从而可以进行其他数据库操作。
...全文
472 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_30251625 2016-06-15
  • 打赏
  • 举报
回复
楼主,我也是这个问题想请教下你,望回复!
还不够格啊 2014-02-08
  • 打赏
  • 举报
回复
引用 3 楼 xloveme 的回复:
ACCESS 数据库不都这样? 正常的吧
可是如果这样,一个程序访问结束后,没有自动删除laccdb文件,这个程序不关闭,其他程序就没有办法访问。 应用情景是:两台电脑上的两个程序,不停地操作位于其中一台电脑的数据库,两个程序从不关闭。两个程序轮流操作数据库,靠laccdb文件来判断是否正在被另一个程序操作。如果一个程序操作完后laccdb文件不自动删除,另一个程序就一直无法访问。
feiyun0112 2014-02-08
  • 打赏
  • 举报
回复
释放com资源

var connection = cat.ActiveConnection;

connection.Close();

System.Runtime.InteropServices.Marshal.ReleaseComObject(connection);
System.Runtime.InteropServices.Marshal.ReleaseComObject(cat);
GC.Collect();

cat.ActiveConnection = null;
cat = null;

*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/
xloveme 2014-02-08
  • 打赏
  • 举报
回复
ACCESS 数据库不都这样? 正常的吧
还不够格啊 2014-02-08
  • 打赏
  • 举报
回复
引用 1 楼 wyd1520 的回复:
ADXO.Catalog 有没有关闭方法cat.Close()???
没有啊。Close没有,Dispose也没有。
还不够格啊 2014-02-08
  • 打赏
  • 举报
回复
引用 4 楼 feiyun0112 的回复:
释放com资源 var connection = cat.ActiveConnection; connection.Close(); System.Runtime.InteropServices.Marshal.ReleaseComObject(connection); System.Runtime.InteropServices.Marshal.ReleaseComObject(cat); GC.Collect(); cat.ActiveConnection = null; cat = null; ***************************************************************************** 签名档: http://feiyun0112.cnblogs.com/
这个方法好使啊,成功达到目的。
本拉灯 2014-02-07
  • 打赏
  • 举报
回复
ADXO.Catalog 有没有关闭方法cat.Close()???

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧