У меня есть набор данных, который динамически создается из файла csv. Что я хочу сделать, так это вставить строки в мою таблицу MS Access, но я не могу понять, с чего начать.
Заголовки данных в наборе данных могут варьироваться в зависимости от порядка, но имя заголовка всегда будет соответствовать базе данных доступа. Должен ли я статически вызывать имя заголовка в команде вставки или я могу построить заголовки из набора данных?
Я знаю, как создать соединение и открыть его в базе данных, но не уверен, как создать в команде вставки для динамического извлечения заголовков таблицы.
Я довольно зеленый, когда дело касается программирования на C #, поэтому, если вы можете объяснить это для меня, я был бы очень признателен!
Вот пример заголовков таблицы доступа:
ID, Item, Cost, Retail
Затем CSV, который заполнит таблицу набора данных. У него может быть Retail, а может и нет:
Item, Cost
Вот код, который у меня есть, но он не записывается в таблицу доступа. Если я просматриваю dtAccess, он показывает правильно.
OleDbConnection myConnection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\"C:\\Database.accdb\";Persist Security Info=False;");
myConnection.Open();
string queryString = "SELECT * from " + lblTable.Text;
OleDbDataAdapter adapter = new OleDbDataAdapter(queryString, myConnection);
DataTable dtAccess = new DataTable();
DataTable dtCSV = new DataTable();
dtCSV = ds.Tables[0];
using (new OleDbCommandBuilder(adapter))
{
adapter.Fill(dtAccess);
dtAccess.Merge(dtCSV);
adapter.Update(dtAccess);
}
myConnection.Close();