可以在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唯一的方法。
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");
}
}