адаптер.обновление не записывает в access

#c# #ms-access #dataset

#c# #ms-access #набор данных

Вопрос:

Кто-нибудь может сказать мне, почему приведенный ниже код не фиксирует данные в таблице базы данных access?

Если я просматриваю таблицу данных dtAccess, она правильно показывает, что я хочу записать в Access, но когда я захожу в Access и просматриваю таблицу, ничего не было записано.

 OleDbConnection myConnection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source="C:\Database.accdb";Persist Security Info=False;");

string queryString = "SELECT * from "   lblTable.Text;

//OleDbDataAdapter adapter = new OleDbDataAdapter(queryString, myConnection);
OleDbDataAdapter adapter = new OleDbDataAdapter();

DataTable dtAccess = new DataTable();
DataTable dtCSV = new DataTable();

dtCSV = ds.Tables[0];

// OleDbCommand cmd = new OleDbCommand("INSERT INTO "   lblTable.Text   "(ASIN) VALUES (1234)", myConnection);  //this command works when used with cmd.executenonquery();

adapter.SelectCommand = new OleDbCommand("SELECT * from "   lblTable.Text, myConnection);
adapter.InsertCommand = new OleDbCommand("INSERT INTO "   lblTable.Text   " ([ASIN], [MAP Retail], [Style Number], [MSRP Retail]) VALUES (?,?,?,?)", myConnection);

myConnection.Open();

adapter.Fill(dtAccess);
dtAccess.Merge(dtCSV);
adapter.Update(dtAccess);

myConnection.Close();
  

Комментарии:

1. Вы проверили, действительно ли в DataTable есть новые или измененные строки после операции слияния? Также есть ли у вашей таблицы Access первичный ключ?

2. Таблица в access пуста, и в ней есть поле автоинкремента, которое является первичным ключом.