У меня проблемы со слиянием / импортом данных ADO.NET 2.0. Мне нужно обновить / вставить данные из одной универсальной таблицы в другую таблицу с обеими таблицами, поддерживающими идентичную схему. Следующий код отлично работает локально, но не вносит изменения в базу данных:
OleDbDataAdapter localDA = loadLocalData();
OleDbDataAdapter hostedDA = loadHostedData();
DataSet dsLocal = new DataSet();
localDA.Fill(dsLocal);
DataSet dsChanges = new DataSet();
hostedDA.Fill(dsChanges);
dsLocal.Tables[0].Merge(dsChanges.Tables[0],false);
localDA.Update(dsLocal.Tables[0]);
То же самое верно с этим фрагментом кода:
OleDbDataAdapter localDA = loadLocalData();
OleDbDataAdapter hostedDA = loadHostedData();
DataSet dsLocal = new DataSet();
localDA.Fill(dsLocal);
DataSet dsChanges = new DataSet();
hostedDA.Fill(dsChanges);
foreach (DataRow changedRow in dsChanges.Tables[0].Rows)
{
if (recordExists(dsLocal.Tables[0], changedRow["ID"]))
{
}
else
{
dsLocal.Tables[0].ImportRow(changedRow);
}
}
localDA.Update(dsLocal.Tables[0]);
Когда я посмотрел на свойство RowState для измененных / добавленных строк, они остались "неизменными". Я хочу, чтобы избежать отображения данных столбцов, если это возможно, что я, возможно, должен сделать с помощью метода NewRow () и изменения существующей строки.