使用 ADOX 目录类,我正在尝试创建一个空的 Ms Access 数据库。代码工作正常(据我所知)并生成数据库,但是当我尝试从 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 对象,但没有任何改变。你能告诉我如何解决这个问题,用户可以在应用程序生成后打开数据库而不关闭(杀死)应用程序吗?
问候