Можно ли создать базу данных в 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");
        }
    }
Другие вопросы по тегам