I have a C# desktop app that is using an MS Access File as a Datasource, but linked to a number of sharepoint lists. The Data Access Layer uses a ADO.NET strongly typed dataset that is setup with the Dataset Designer in Visual Studio 2019.
When I try to update an existing row, I get a new row in the sharepoint list instead of an update. However, if I use an Access file that is not connected to Sharepoint the update is successful.
Any insight from anyone on what may be wrong?
Here is the method that creates or updates the new row:
private WorkerRow CreateOrUpdateWorkerRow(Worker worker)
{
WorkerRow workerRow = null;
// Check & Create Workers
if (worker.Id > 0)
{
LogHelper.Log(LogTarget.EventLog, "In CreateOrUpdateWorkerRow, \nWorker exists!, ID is: " + worker.Id);
// Get worker row from database for update
workerRow = FteHostDataManager.FteHostDataSet.Worker.FindByID(worker.Id);
LogHelper.Log(LogTarget.EventLog, "In CreateOrUpdateWorkerRow, \nWorker Row Retrieved from Database, Worker Row ID is: " + workerRow["ID"]);
workerRow.FirstName = worker.FirstName;
workerRow.LastName = worker.LastName;
workerRow.TaxID = worker.TaxID;
workerRow.Gender = (int)worker.Gender;
workerRow.DateOfBirth = worker.DateOfBirth;
workerRow.HmoID = worker.HmoID;
workerRow.HmoProvider = worker.HmoProvider;
workerRow.PensionID = worker.PensionID;
workerRow.PensionAdministrator = worker.PensionAdministrator;
workerRow.Address = worker.Address != null ? worker.Address : "";
workerRow.Email = worker.Email != null ? worker.Email : "";
workerRow.PhoneNumber = worker.PhoneNumber != null ? worker.PhoneNumber : "";
}
// if not create new row
else
{
LogHelper.Log(LogTarget.EventLog, "In CreateOrUpdateWorkerRow, Worker does not exists!");
// Add new row to table
workerRow = FteHostDataManager.FteHostDataSet.Worker.AddWorkerRow(
WorkerRegistrationNumber: worker.WorkerRegistrationNumber != null ? worker.WorkerRegistrationNumber : "",
StateOfOrigin: worker.StateOfOrigin != null ? worker.StateOfOrigin : "",
Nationality: worker.Nationality != null ? worker.Nationality : "",
Gender: (int)worker.Gender,
DateOfBirth: worker.DateOfBirth != null ? worker.DateOfBirth : new DateTime(),
TaxID: worker.TaxID != null ? worker.TaxID : "",
HmoProvider: worker.HmoProvider != null ? worker.HmoProvider : "",
HmoID: worker.HmoID != null ? worker.HmoID : "",
PensionID: worker.PensionID != null ? worker.PensionID : "",
PensionAdministrator: worker.PensionAdministrator != null ? worker.PensionAdministrator : "",
FirstName: worker.FirstName != null ? worker.FirstName : "",
LastName: worker.LastName != null ? worker.LastName : "",
Address: worker.Address != null ? worker.Address : "",
Email: worker.Email != null ? worker.Email : "",
PhoneNumber: worker.PhoneNumber != null ? worker.PhoneNumber : ""
);
}
WorkerTableAdapter.Adapter.RowUpdated += OnRowUpdated;
// Update Table
WorkerTableAdapter.Update(FteHostDataManager.FteHostDataSet.Worker);
// update worker id
worker.Id = workerRow.ID;
return workerRow;
}