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

Preguntas similare

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
Respuesta Responder a este mensaje
#2 TR
19/08/2005 - 11:19 | Informe spam
Muchas gracias Octavio :)

"Octavio Hernandez" escribió:

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



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida