Добавьте ссылку ADOX COM в свой проект и попробуйте следующий код:
using ADOX;
//...
private void Test() {
string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=<path to your .mdb>";
CatalogClass cat = new CatalogClass();
cat.let_ActiveConnection(connString);
RenameField(cat, "YourTableName", "OriginalFieldName", "NewFieldName");
AddField(cat, "YourTableName", "YourNewFieldName", DataTypeEnum.adVarWChar, 50, "");
}
// Rename a field.
private void RenameField(CatalogClass cat, string tableName, string originalFieldName, string newFieldName) {
cat.Tables[tableName].Columns[originalFieldName].Name = newFieldName;
}
// Add a field to a specified table.
private void AddField(ADOX.CatalogClass cat, string tableName, string newFieldName, DataTypeEnum varType, int size, string defaultValue) {
ColumnClass col = new ColumnClass();
col.Name = newFieldName;
col.Type = varType;
col.DefinedSize = size;
col.Attributes = ColumnAttributesEnum.adColNullable;
cat.Tables[tableName].Columns.Append((object)col, DataTypeEnum.adInteger, 0);
if (!string.IsNullOrEmpty(defaultValue)) {
col.Properties["Default"].Value = defaultValue;
}
}
Подробности можно найти в следующих сообщениях в блоге:
Переименовать поле в MSПрограммный доступ с использованием ADOX (C # .NET)
Добавление нового поля в MS Access программным путем с использованием ADOX (C # .Net)
Добавление данных в новое поле с использованием стандартныхADO.net.