Tuesday, April 7, 2009

How to clone DataRow and get its auto-incremented ID number after inserting into Access Database

In my work with Access Database I needed to duplicate an existing row in the table and get an ID of newly inserted row. Below are short snippets of code showing how.

Duplicating a DataRow

// load the data into Data Table
DataTable dataTable = tableAdapter.GetData();

// clone a Data Table
DataTable duplicatedDataTable = dataTable.Clone();

// get row to duplicate
DataRow row = dataTable.Rows[0];

// import row into cloned Data Table
duplicatedDataTable.ImportRow(row);


This way we get a deep copy of the existing row and later use table adapter to insert it into database.



Getting auto-incremented ID number after inserting a row into Access Database



The actual idea of getting an auto-incremented ID of the new row in Access Database is very simple. Right after insert of the row we need to execute similar query to this one:



SELECT MAX(ID) FROM TableName

In order to avoid loading wrong ID in multi-user environment it is good to add some WHERE selection criteria which will limit selection only to duplicated rows. MAX function will pick the ID of the last inserted row.

0
Show Comments: OR

0 comments:

Post a Comment