Можно ли создать базу данных в C# с использованием OLEDB и ничего больше?
Я использую OLEDB программно (нет ссылок в Visual Studio, просто обращаюсь к базе данных, которая находится в той же папке, что и программа, через код) для доступа и изменения баз данных Microsoft Access в Visual Basic. Я всегда следил за тем, чтобы в моих программах были все необходимые базы данных, уже созданные и упакованные вместе с программой, но я портировал некоторые из моих программ на VB на C# и интересовался, возможно ли создать файл базы данных, если база данных потеряна или удален.
Я видел несколько руководств по добавлению ссылки на COM в Microsoft ADO Ext. XX для DLL и SecurityADOX, но мне было интересно, есть ли способ использовать OLEDB для создания, а затем создания экземпляра базы данных.
Что-то вроде проверки, существует ли база данных
if (!File.Exists("Database.accdb"))
тогда какой-то код, который не ADOX Catalog.Create
(Я также видел CatalogClass.Create
), но является эквивалентом OLEDB, если таковой имеется.
Я прочитал пару вопросов о переполнении стека, которые все говорят об использовании ADOX. Даже в учебниках Microsoft используется ADOX.
Я полностью открыт для добавления ADOX и все еще использую OLEDB, если это лучший курс, или даже переключаюсь на SQLite, если он быстрее / эффективнее, но я просто спрашивал, есть ли способ только для OLEDB.
0 ответов
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");
}
}