Duda Transacciones

19/08/2005 - 09:43 por TR | Informe spam
Hola,

tengo el siguiente código sobre transacciones:

[C#]
SqlConnection myConnection = new SqlConnection("Data
Source=localhost;Initial Catalog=Northwind;Integrated Security=SSPI;");
myConnection.Open();

// Start a local transaction.
SqlTransaction myTrans = myConnection.BeginTransaction();

// Enlist the command in the current transaction.
SqlCommand myCommand = myConnection.CreateCommand();
myCommand.Transaction = myTrans;

try
{
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription)
VALUES (100, 'Description')";
myCommand.ExecuteNonQuery();
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription)
VALUES (101, 'Description')";
myCommand.ExecuteNonQuery();
myTrans.Commit();
Console.WriteLine("Both records are written to database.");
}
catch(Exception e)
{
myTrans.Rollback();

Console.WriteLine("Error: {1}", e.Message);
Console.WriteLine("Error reported by {1}.", e.Source);
Console.WriteLine("El dinero no ha sido tranferido.");
Response.Write(e.ToString());
}
finally
{
myConnection.Close();
}


me gustaria saber si donde pone:

// Enlist the command in the current transaction.
SqlCommand myCommand = myConnection.CreateCommand();
myCommand.Transaction = myTrans;


se puede poner:

// Enlist the command in the current transaction.
SqlCommand myCommand = new SqlCommand();
myCommand.Transaction = myTrans;


Un cordial saludo y muchas gracias
 

Leer las respuestas

#1 Octavio Hernandez
19/08/2005 - 10:42 | Informe spam
TR,

Sí puedes hacerlo.
Si usas el constructor sin parámetros, deberás asociarle al nuevo comando la
conexión, la transacción y el texto del comando.
O puedes usar otra versión del constructor a la que ya se le pasan todos
esos datos:

http://msdn.microsoft.com/library/d...rtopic.asp

Slds - Octavio

"TR" escribió en el mensaje
news:
Hola,

tengo el siguiente código sobre transacciones:

[C#]
SqlConnection myConnection = new SqlConnection("Data
Source=localhost;Initial Catalog=Northwind;Integrated Security=SSPI;");
myConnection.Open();

// Start a local transaction.
SqlTransaction myTrans = myConnection.BeginTransaction();

// Enlist the command in the current transaction.
SqlCommand myCommand = myConnection.CreateCommand();
myCommand.Transaction = myTrans;

try
{
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription)
VALUES (100, 'Description')";
myCommand.ExecuteNonQuery();
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription)
VALUES (101, 'Description')";
myCommand.ExecuteNonQuery();
myTrans.Commit();
Console.WriteLine("Both records are written to database.");
}
catch(Exception e)
{
myTrans.Rollback();

Console.WriteLine("Error: {1}", e.Message);
Console.WriteLine("Error reported by {1}.", e.Source);
Console.WriteLine("El dinero no ha sido tranferido.");
Response.Write(e.ToString());
}
finally
{
myConnection.Close();
}


me gustaria saber si donde pone:

// Enlist the command in the current transaction.
SqlCommand myCommand = myConnection.CreateCommand();
myCommand.Transaction = myTrans;


se puede poner:

// Enlist the command in the current transaction.
SqlCommand myCommand = new SqlCommand();
myCommand.Transaction = myTrans;


Un cordial saludo y muchas gracias

Preguntas similares