Updating Dataset

Tech-Archive recommends: Fix windows errors by optimizing your registry



Hello

To update a dataset i created a method (see below)
My question is, how to return the created Primary ID that is created on the
server auto incremential. Is there anyway to place that value into the
correct inserted row?

Kind regards

Johnny E. Jensen

#region Method 'Save'

public void Save(DataSet Datasource, object UserID)

{

bool IsValid = true;

if (Datasource != null)

{

if (Datasource.Tables[0] != null)

{

DataSet dsChanges = Datasource.GetChanges();

if (dsChanges != null)

{

OleDbConnection con = new OleDbConnection(_ConnectionString);

try

{

con.Open();

}

catch (Exception ex)

{

ErrorLogger.WriteToErrorLog(ex.Message, ex.StackTrace,
"Aware.Database.Save()");

IsValid = false;

}

if (IsValid == true)

{

OleDbTransaction dbTran = con.BeginTransaction();

DataTable dtChanges = dsChanges.Tables[0];

OleDbCommand cmd = new OleDbCommand("SELECT * FROM [" + dtChanges.TableName
+ "]", con);

cmd.Transaction = dbTran;

OleDbDataAdapter dbAdapter = new OleDbDataAdapter(cmd);

dbAdapter.RowUpdated += new
OleDbRowUpdatedEventHandler(dbAdapter_RowUpdated);

OleDbCommandBuilder cb = new OleDbCommandBuilder(dbAdapter);

try

{

dbAdapter.InsertCommand = cb.GetInsertCommand();

}

catch (Exception ex)

{

ErrorLogger.WriteToErrorLog(ex.Message, ex.StackTrace,
"Aware.Database.Save()");

}

try

{

dbAdapter.UpdateCommand = cb.GetUpdateCommand();

}

catch (Exception ex)

{

ErrorLogger.WriteToErrorLog(ex.Message, ex.StackTrace,
"Aware.Database.Save()");

}

try

{

dbAdapter.DeleteCommand = cb.GetDeleteCommand();

}

catch (Exception ex)

{

ErrorLogger.WriteToErrorLog(ex.Message, ex.StackTrace,
"Aware.Database.Save()");

}

if (dbAdapter.InsertCommand != null)

dbAdapter.InsertCommand.Transaction = dbTran;

if (dbAdapter.UpdateCommand != null)

dbAdapter.UpdateCommand.Transaction = dbTran;

if (dbAdapter.DeleteCommand != null)

dbAdapter.DeleteCommand.Transaction = dbTran;

try

{

dbAdapter.Update(dtChanges);

}

catch (Exception ex)

{

ErrorLogger.WriteToErrorLog(ex.Message, ex.StackTrace,
"Aware.Database.Save()");

}

TableLogger(Datasource, UserID);

Datasource.AcceptChanges();

dbTran.Commit();

con.Close();

dsChanges = null;

con = null;

dbTran = null;

dtChanges = null;

cmd = null;

dbAdapter = null;

cb = null;

}

}

}

}

}










.