У меня есть DataTable с примерно 6000 строками, созданными из запроса к базе данных SQL Server. Теперь я пытаюсь добавить данные в таблицу MS-Access. Кажется, все работает. Никаких исключений не возникает, но данные не добавляются. Вот код, который я использую:
DataTable t = new DataTable();
// fill data table
// Create DB - works!
var Name = DateTime.Now.ToString("H_mm_ss");
string strAccessConnectionString = @"Provider = Microsoft.Jet.OLEDB.4.0;" +
@"Data Source=" + "C:\\chhenning\\" + Name + ".mdb;";
ADOX.CatalogClass Catalog = new ADOX.CatalogClass();
Catalog.Create(strAccessConnectionString);
OleDbConnection accessConnection = new OleDbConnection(strAccessConnectionString);
accessConnection.Open();
// Create Table - works!
OleDbCommand Command = accessConnection.CreateCommand();
Command.CommandText = "Create Table Test( "
+ " ID_ int not null "
+ " , Year_ int not null "
+ " , Value_ float not null )";
Command.ExecuteNonQuery();
// Add data into table - does not work!
var adapter = new OleDbDataAdapter();
adapter.SelectCommand = new OleDbCommand("select * from Test", accessConnection);
var cbr = new OleDbCommandBuilder(adapter);
cbr.GetInsertCommand();
var Rows = adapter.Update(t);
Я убедился, что в моем DataTable есть данные и что и DataTable, и MS-Access имеют одни и те же столбцы с одинаковыми типами данных.
Может кто-нибудь заметить, что не так с кодом? Какие шаги я предприму для дальнейшего изучения проблемы?