Чтобы читать данные из Excel, я установил из NuGet пакеты ExcelDataReader и ExcelDataReader.DataSet.Все работает нормально, пока я не попытаюсь загрузить DataTable внутри базы данных таблицы с помощью адаптера.Update(dt) В режиме отладки я вижу, что dt заполнен правильно и все строки и столбцы успешно прочитаны от ExcelDataReader. Кстати, когда я вызываю метод .Update(dt) SQLiteDataAdapter, он не генерирует никаких исключений, но база данных таблицы просто не обновляется.
Вот мой код:
Код: Выделить всё
System.Data.DataTable dt = new System.Data.DataTable();
SQLiteConnection Con = new SQLiteConnection(DataSource);
Con .Open();
//read the .xlsx Excel
FileStream stream = File.Open(path, FileMode.Open, FileAccess.Read);
var reader = ExcelReaderFactory.CreateReader(stream);
//change all columns name
DataSet result = reader.AsDataSet(new ExcelDataSetConfiguration()
{
ConfigureDataTable = (_) => new ExcelDataTableConfiguration()
{
UseHeaderRow = true
}
});
//in debug mode I see dt correctly populated
dt = result.Tables[0];
SQLiteDataAdapter adapter2 = new SQLiteDataAdapter("SELECT Col1, Col2, Col3, Col4, Col5, Col6, Col7, Col8 FROM TableDB", Con);
SQLiteCommandBuilder SQLBuilder2 = new SQLiteCommandBuilder(adapter2);
SQLiteTransaction trans = GestoreSpuntisti2.BeginTransaction();
adapter2.Update(dt);
trans.Commit();
Con.Close();
Я использую метод .Update во многих других случаях, и он всегда работает нормально, но теперь, когда я его использую при чтении Excel что-то идет не так, но я не знаю что.
Можете ли вы мне помочь? Спасибо вам большое.
Подробнее здесь: https://stackoverflow.com/questions/790 ... nd-sqlitec