Hi,
Im trying to use SELECT @@IDENTITY in a transaction. But it always returns 0.
Im using an ms access database. And using the following code.
What am i doing wrong?
Best regards banski
public int SavePage(int id....)
{
int SomeId = 0;
string myDNS = ConfigurationSettings.AppSettings["ConnectionString"];
OleDbConnection myConn = new OleDbConnection(myDNS);
myConn.Open();
OleDbTransaction myTrans = myConn.BeginTransaction();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = myConn;
cmd.Transaction = myTrans;
try
{
cmd.CommandText = "InsertDataData";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@PageTypeId", OleDbType.Integer).Value = PageTypeId;
//adding more parameters
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
cmd.CommandText = "SELECT @@IDENTITY";
SomeId = (int)cmd.ExecuteScalar();
//Making more inserts using identity
......
......
myTrans.Commit();
}
catch(OleDbException e)
{
Console.WriteLine(e.ToString());
myTrans.Rollback();
}
finally
{
myConn.Close();
}
return SomeId;
}