使用ADOX类,我正在尝试创建一个空的Ms访问Database.The代码(据我所知)并生成数据库,但是当我试图从windows资源管理器打开数据库时,我得到了“无法使用name.accdb;已经在使用的文件”错误消息。我检查了文件目录,并且name.idb文件也出现在目录中,而没有打开数据库。在我关闭C# windows窗体应用程序之后,name.idb就消失了,我可以打开数据库。下面是我使用ADOX创建数据库时使用的代码。
public void CreateDatabase()
{
string databaseName = txtFileName.Text;
try
{
ADOX.Catalog cat = new ADOX.Catalog();
if (!File.Exists(databaseName + ".accdb"))
{
cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=D:\\" + databaseName + ".accdb" + ";");
cat = null;
}
cat = null;
}
catch (Exception e)
{
MessageBox.Show(e.Message, e.Source);
}
}我还试图通过实现IDispaosable接口来释放cat对象,但是没有什么改变。您能告诉我如何解决这个问题吗?在应用程序生成之后,哪个用户可以打开数据库而不关闭(杀死)应用程序?
问候
发布于 2012-12-31 14:11:48
也许您需要释放对象。在调用Create之后尝试添加以下内容:
Marshal.FinalReleaseComObject(cat.Tables);
Marshal.FinalReleaseComObject(cat.ActiveConnection);
Marshal.FinalReleaseComObject(cat);https://stackoverflow.com/questions/11595867
复制相似问题