可以在c#中使用OLEDB创建数据库吗?

本文关键字:创建 OLEDB 数据库 | 更新日期: 2023-09-27 18:11:48

我一直以编程方式使用OLEDB(在Visual Studio中没有引用,只是访问数据库,它与程序在同一文件夹中,通过代码)访问和修改Visual Basic中的Microsoft access数据库。我总是确保我的程序已经创建并打包了任何所需的数据库,但是我一直在将我的一些VB程序移植到c#中,并且想知道如果数据库丢失或删除,是否有可能创建数据库文件。

我看过一些教程使用添加一个COM引用到Microsoft ADO Ext. X.X的DLL和SecurityADOX,但我想知道是否有一种方法使用OLEDB来创建然后实例化数据库。

检查数据库是否存在

if (!File.Exists("Database.accdb"))

然后是一些代码,不是ADOX的Catalog.Create(我也见过CatalogClass.Create),但是OLEDB等效的,如果有的话。

我读过几个堆栈溢出问题,都说要使用ADOX。甚至微软的教程都涉及到ADOX。

我完全开放添加ADOX和仍然使用OLEDB,如果这是最好的过程,甚至切换到SQLite,如果它更快/更有效,但我只是问是否有OLEDB唯一的方法。

可以在c#中使用OLEDB创建数据库吗?

public void CreateAccessdatabase()
    {
        try
        {
            ADOX.Catalog cat = new ADOX.Catalog();
            cat.Create("Provider = Microsoft.ACE.OLEDB.12.0;Data Source=" + SaveDialogTargetFile.FileName + ";;Jet OLEDB:Engine Type=5;");
            cat = null;
            TxtDatabaseFile.Text = SaveDialogTargetFile.FileName;
            string CreatedDatabaseFileName = Path.GetFileNameWithoutExtension(SaveDialogTargetFile.FileName);
            TreeViewDatabaseScheme.Nodes.Add(CreatedDatabaseFileName);
            MessageBox.Show("Databasefile succesfully created");
        }
        catch (Exception)
        {
            MessageBox.Show("Failed to create new databasefile");
        }
    }