No he visto exactamente el tipo de queries que estas usando pero lo que yo hago es colocar mis insert, updates, etc en un solo storeprocedure, claro que siempre y cuando esten relacionados

, todo depende.
Y ya por código hago algo como ésto:
Cita: ....
...
oConn.Open();
trans = oConn.BeginTransaction();
try
{
...
...
myComand.ExecuteNonQuery();
trans.Commit();
}
catch (Exception ex)
{
trans.Rollback();
}
finally
{
if (oConn.State == ConnectionState.Open)
oConn.Close();
}
Salu2