Как создать базу данных Microsoft Access на С# программно?
Как создать файл базы данных Microsoft Access на С#, если он еще не существует?
Ответы
Ответ 1
Самый простой ответ заключается в том, чтобы вставить пустой файл .mdb
/.accdb
в вашу программу и записать его на диск.
Правильный ответ - использовать COM Interop с библиотекой ADOX:
var cat = new ADOX.Catalog()
cat.Create(connectionString);
Не забудьте создать строки подключения с помощью OleDbConnectionStringBuilder
.
Ответ 2
Попробуйте:
using ADOX; //Requires Microsoft ADO Ext. 2.8 for DDL and Security
using ADODB;
public bool CreateNewAccessDatabase(string fileName)
{
bool result = false;
ADOX.Catalog cat = new ADOX.Catalog();
ADOX.Table table = new ADOX.Table();
//Create the table and it fields.
table.Name = "Table1";
table.Columns.Append("Field1");
table.Columns.Append("Field2");
try
{
cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileName + "; Jet OLEDB:Engine Type=5");
cat.Tables.Append(table);
//Now Close the database
ADODB.Connection con = cat.ActiveConnection as ADODB.Connection;
if (con != null)
con.Close();
result = true;
}
catch (Exception ex)
{
result = false;
}
cat = null;
return result;
}
http://zamirsblog.blogspot.com/2010/11/creating-access-database.html
Ответ 3
На моем компьютере Windows 7 sp1 Professional 64-bit, я нашел Microsoft ADO Ext. 2.8 для DDL и безопасности в C:\Program Files\Common Files\System\ado\msadox28.dll.
Он также находится в качестве ссылки:
![enter image description here]()
который включен как ADOX в ссылках
![enter image description here]()
По умолчанию столбцы создаются как текст [255]. Вот несколько примеров создания столбцов в виде разных типов данных.
table.Columns.Append("PartNumber", ADOX.DataTypeEnum.adVarWChar, 6); // text[6]
table.Columns.Append("AnInteger", ADOX.DataTypeEnum.adInteger); // Integer
Я нашел этот список типов данных для создания и чтения полей базы данных доступа
Доступ к тексту = adVarWChar
Access Memo = adLongVarWChar
Доступ к числовому байту = adUnsignedTinyInt
Доступ к числовому целому числу = adSmallInt
Доступ к числовому длинному целому числу = adInteger
Access Numeric Single Precision = adSingle
Доступ к числовой двойной точности = adDouble
Access Numeric Replicatie-id = adGuid
Доступ к числовому десятичному значению = adNumeric
Дата доступа/время = adDate
Доступ к валюте = adCurrency
Access AutoNumber = adInteger
Доступ Да/Нет = adBoolean
Доступ к HyperLink = adLongVarWChar