#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 пуста, и в ней есть поле автоинкремента, которое является первичным ключом.