Я новичок в C#, и я разрабатываю приложение, которое использует небольшую базу данных Access. Я пытался понять, что использовать, ADODB или OLEDB, но, похоже, я не смог решить вопрос.Нужно ли использовать ADODB и OLEDB?
Итак, возможно ли использовать только одну из этих библиотек? Или это нормально использовать оба?
Например, обычные вещи с базами данных:
string MyQuery = "SELECT * FROM MyTable";
Recordset rs = new Recordset();
rs.Open(MyQuery, MyConnection, CursorTypeEnum.adOpenKeyset, LockTypeEnum.adLockOptimistic);
использует все объекты ADOdb до:
OleDbDataAdapter adapter = new OleDbDataAdapter();
DataTable dt = new DataTable("MyTable");
adapter.Fill(dt, rs);
поэтому я кормить DataGridView с DataTable. Адаптером является OLEDB, а не ADODB. Есть ли способ избежать OLEDB? Таким образом, я думал, что я избавилась от ADODB и делать все, что в OLEDB, все шло хорошо, пока я не хотел добавлять таблицы во время выполнения:
ADOX.Catalog MyCat = new ADOX.Catalog();
MyCat.ActiveConnection = MyConnection;
ADOX.Table table = new ADOX.Table();
table.Name = "MyTable";
table.Columns.Append("ID", ADOX.DataTypeEnum.adInteger);
table.Columns["ID"].ParentCatalog = MyCat;
table.Columns["ID"].Properties["AutoIncrement"].Value = true;
table.Keys.Append("PrimaryKey", ADOX.KeyTypeEnum.adKeyPrimary, "ID");
table.Columns.Append("DateAdded", ADOX.DataTypeEnum.adDate);
table.Columns.Append("Name");
table.Columns.Append("Surname");
cat.Tables.Append(table);
где каталог абсолютно отказывается соединение OLEDB и требует ADODB один, так что я должен был спасение ADODB.
Итак, в конце концов, мне нужно уйти в отставку, чтобы использовать оба варианта, или я делаю что-то не так в образцах кода, которые я разместил? Альтернативы приветствуются, спасибо заранее.
Было бы очень хорошо, если новичок знает, какую систему использовать и придерживаться, зная, что он может делать все, что нужно.
Спасибо за быстрый ответ. Ваши вопросы: моя строка подключения - «Provider = Microsoft.Jet.OLEDB.4.0; Источник данных = mydatabase.mdb»; в то время как ADOX - Interop.ADOX = Microsoft ADO Ext. 2.8 для DDL и безопасности. Итак, вы говорите, что я должен придерживаться OLEDB? В этом случае я не знаю, как использовать каталог для подключения к подключению OLEDB, как я сказал во второй части кода, который я опубликовал. –
ADOX предназначен для создания баз данных с нуля по коду или для изменения схемы/дизайна по коду. Может также использоваться для допроса деталей схемы базы данных. – eric1825
@ArneSaknussemm Для начала используйте ACE (он заменил Jet) ... информацию о строке соединения можно найти в верхней части https://www.connectionstrings.com/access/ СМОТРИТЕ МОЙ EDIT –