Transaction C#
Bom dia Pessoal,
Estou precisando fazer um Insert e um Update no mesmo metodo, alguém poderia me ajudar..
Vlw
Estou precisando fazer um Insert e um Update no mesmo metodo, alguém poderia me ajudar..
Vlw
Alan Miranda
Curtidas 0
Respostas
Fabio Rosa
14/10/2011
Olá Alan!
Você está usando que tipo de conexão com o banco? ADO .NET, Nhibernate, Entity Framework?
Att.
Você está usando que tipo de conexão com o banco? ADO .NET, Nhibernate, Entity Framework?
Att.
GOSTEI 0
Alan Miranda
14/10/2011
Fabio,
Estou utilizando ADO.NET.
Obrigado!
Estou utilizando ADO.NET.
Obrigado!
GOSTEI 0
Ulisses Silva
14/10/2011
Amigo,
Veja se este exemplo te atende:
http://devrafael.blogspot.com/2011/02/utilizando-transacoes-adonet.html
T+...
Veja se este exemplo te atende:
http://devrafael.blogspot.com/2011/02/utilizando-transacoes-adonet.html
T+...
GOSTEI 0
Alan Miranda
14/10/2011
Muito obrigado!
Porem eu consigo fazer esses dois comandos direto no banco de dados ?
Vlw
Porem eu consigo fazer esses dois comandos direto no banco de dados ?
Vlw
GOSTEI 0
Rodrigo Odasaki
14/10/2011
Consegue sim, utilizando procedure.
GOSTEI 0
Alan Miranda
14/10/2011
Então fazer a transaction no SQL e manda a reposta para o C# certo ?
Teria algum exemplo no SQL
Obrigado
Teria algum exemplo no SQL
Obrigado
GOSTEI 0
Evandro Lopes
14/10/2011
Bom dia Alan, você deverá fazer algo muito proximo disso:
Espero ter ajudado.
Abraços.
CREATE PROCEDURE SPSF_INCLUIR_ALTERAR ( @P_CODIGO as int, @P_NOME as varchar(40) ) AS BEGIN SET NOCOUNT ON SET TRANSACTION ISOLATION LEVEL READ COMMITTED IF @P_CODIGO <> 0 OR @P_CODIGO <> NULL BEGIN INSERT..... ELSE UPDATE..... END SET NOCOUNT OFF END
Espero ter ajudado.
Abraços.
GOSTEI 0
Dyego Furletti
14/10/2011
Trasanction Ado Net (Oracle)
OracleConnection conexao = new OracleConnection(StringConnection());
OracleCommand comando = new OracleCommand();
OracleTransaction transacao = null;
//Abre Conexão e Inicia Transação
try
{
if (conexao.State == ConnectionState.Closed)
conexao.Open();
comando.Connection = conexao;
}
catch (Exception ex)
{
comando.Parameters.Clear();
conexao.Close();
throw new Exception(Não foi possível estabelecer conexão.\nMotivo: + ex.Message);
}
//Exemplo utilização da Trasaction Oracle
try
{
transacao = conexao.BeginTransaction();
comando.Transaction = transacao;
StringBuilder ins = new StringBuilder();
ins.Append(INSERT INTO );
comando.CommandText = ins.ToString();
comando.ExecuteNonQuery();
transacao.Commit();
MessageBox.Show(Processo concluido com sucesso!!!);
}
catch (Exception ex)
{
if (transacao != null)
transacao.Rollback();
comando.Parameters.Clear();
conexao.Close();
throw new Exception(Processo abortado.\nMotivo: + ex.Message);
}
finally
{
if (conexao != null)
{
if (conexao.State == ConnectionState.Open)
{
conexao.Close(); //Fechando Conexão
}
}
}
OracleConnection conexao = new OracleConnection(StringConnection());
OracleCommand comando = new OracleCommand();
OracleTransaction transacao = null;
//Abre Conexão e Inicia Transação
try
{
if (conexao.State == ConnectionState.Closed)
conexao.Open();
comando.Connection = conexao;
}
catch (Exception ex)
{
comando.Parameters.Clear();
conexao.Close();
throw new Exception(Não foi possível estabelecer conexão.\nMotivo: + ex.Message);
}
//Exemplo utilização da Trasaction Oracle
try
{
transacao = conexao.BeginTransaction();
comando.Transaction = transacao;
StringBuilder ins = new StringBuilder();
ins.Append(INSERT INTO );
comando.CommandText = ins.ToString();
comando.ExecuteNonQuery();
transacao.Commit();
MessageBox.Show(Processo concluido com sucesso!!!);
}
catch (Exception ex)
{
if (transacao != null)
transacao.Rollback();
comando.Parameters.Clear();
conexao.Close();
throw new Exception(Processo abortado.\nMotivo: + ex.Message);
}
finally
{
if (conexao != null)
{
if (conexao.State == ConnectionState.Open)
{
conexao.Close(); //Fechando Conexão
}
}
}
GOSTEI 0
Dyego Furletti
14/10/2011
Transaction utilizando Entity Framework
/*Instanciar objeto da modelagem*/
ModelEntities Model = new ModelEntities(StringConnectionEntity); //Declaração do seu objeto da modelagem passando o string Entities
DbTransaction Transaction = null;
using (EntityConnection DbConnection = new EntityConnection(Model.Connection.ConnectionString))
{
try
{
if (DbConnection.State == ConnectionState.Closed)
{
DbConnection.Open(); //Abrindo Conexão
}
var CurrentContext = new ModelEntities(DbConnection); //Passando como parametro o estado da Conexão
Transaction = CurrentContext.Connection.BeginTransaction(); //Iniciando a Transação
//CurrentContext.SaveChanges(); //O objeto CurrentContext passa a ser o objeto que se comunica com sua modelagem
Transaction.Commit();
}
catch (Exception ex)
{
Transaction.Rollback();
}
finally
{
if (DbConnection != null)
{
if (DbConnection.State == ConnectionState.Open)
{
DbConnection.Close(); //Fechando Conexão
}
}
}
}
/*Instanciar objeto da modelagem*/
ModelEntities Model = new ModelEntities(StringConnectionEntity); //Declaração do seu objeto da modelagem passando o string Entities
DbTransaction Transaction = null;
using (EntityConnection DbConnection = new EntityConnection(Model.Connection.ConnectionString))
{
try
{
if (DbConnection.State == ConnectionState.Closed)
{
DbConnection.Open(); //Abrindo Conexão
}
var CurrentContext = new ModelEntities(DbConnection); //Passando como parametro o estado da Conexão
Transaction = CurrentContext.Connection.BeginTransaction(); //Iniciando a Transação
//CurrentContext.SaveChanges(); //O objeto CurrentContext passa a ser o objeto que se comunica com sua modelagem
Transaction.Commit();
}
catch (Exception ex)
{
Transaction.Rollback();
}
finally
{
if (DbConnection != null)
{
if (DbConnection.State == ConnectionState.Open)
{
DbConnection.Close(); //Fechando Conexão
}
}
}
}
GOSTEI 0