Вы можете получить к нему доступ через параметры команды, добавив новый с выходным значением (или вы можете использовать ReturnValue, если вы не возвращаете другой результат, например на затронутые строки).
т.е.Добавьте эти три строки в конец списка параметров
SqlParameters pKey = new SqlParameters("@pKey", System.Data.SqlDbType.Int);
pKey.Direction = Output;
command.Parameters.Add(pKey);
Затем в конце вашего sql установите для этого параметра значение первичного ключа следующим образом:
set @pKey = scope_identity();
т.е.
InsertCommand="INSERT INTO [NominalCode] ([VAXCode], [Reference], [CostCentre], [Department], [ReportingCategory]) VALUES (@VAXCode, @Reference, @CostCentre, @Department, @ReportingCategory); set @pKey = scope_identity()"
Затем просто прочитайте его после выполнения команды:
int primaryKey = (int)pKey.Value;
Simples!
Еще один способ аудита - сохранить сохраненный процессвыполнять аудит непосредственно, чтобы обеспечить согласованность и сохранить выполнение во всех приложениях, но все это зависит от предпочтений и дизайна системы.