drigo 0 Denunciar post Postado Setembro 30, 2009 Olaaa... Estou tento um erro na criação de um método que realiza o processo de " Begin Transaction...Commit" de uma sentença SQL, nesse caso uma sentença de Update. O erro gerado pela linha "cmd.Transaction = transacao;" mostra a seguinte mensagem: "Property or indexer 'Oracle.DataAccess.Client.OracleCommand.Transaction' cannot be assigned to -- it is read only ...". public void AtualizarDados(string dados){ string ConnectionString = "..."; OracleConnection conexao = new OracleConnection(); OracleTransaction transacao=null; OracleCommand cmd = null; try{ conexao.ConnectionString = ConnectionString; conexao.Open(); transacao = conexao.BeginTransaction(); cmd = new OracleCommand(dados); cmd.Connection = conexao; //----------------------------------------------------------------------- //Especifica o OracleTransaction dentro do qual o OracleCommand executa... cmd.Transaction = transacao; //LINHA ONDE ERRO É GERADO ... //------------------------------------------------------------------------ cmd.ExecuteNonQuery(); transacao.Commit(); } catch(Exception Edel){ transacao.Rollback(); } finally{ if (transacao != null) { transacao.Dispose(); } if(conexao!=null){ conexao.Close(); } } Porque o respectivo ERRO, se justamente com o "cmd.Transaction = transacao;" eu especifico a Transação no qual o Comando Oracle irá executar ?? Houve algum erro nessa especificação ?? Desde já, Agradeçoo... Abraçoo... Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Outubro 1, 2009 Se você postar o mesmo update diretamente no Oracle funciona? Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
drigo 0 Denunciar post Postado Outubro 1, 2009 Olaa... Funcionaa perfeitamentee... Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Outubro 1, 2009 Ficou faltando definir o cmd.CommandText. De uma olhada: http://www.akadia.com/services/dotnet_dbtrans.html Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
drigo 0 Denunciar post Postado Outubro 28, 2009 Grato por sua ajuda, Consegui resolver o problema... Grande abraçoo... Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Outubro 28, 2009 A solução foi a que eu postei ou outra? Se for outra poste ela. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
rockysp 0 Denunciar post Postado Julho 13, 2010 A solução foi a que eu postei ou outra? Se for outra poste ela. Abraços... Caro quintelab eu tive o mesmo problema e fiquei muito frustrado que o nosso amigo não colocou a solução que ele encontrou. Pesquisei mais e também cheguei a uma conclusão e vou postar aqui para melhorar um pouco mais o tópico. O problema está no driver do Oracle. Oracle Database driver 10.1.0.2.0 para Oracle 10g. Ele não suporta a sintaxe OracleConnection conn = new OracleConnection(....); OracleTransaction trans = conn.BeginTransaction(); OracleCommand command = new OracleCommand(sqlquery); command.Transaction = trans; // Linha que estava dando erro. ........ .... Segue o código que funcionou comigo. OracleConnection conn = new OracleConnection(....); OracleTransaction trans = conn.BeginTransaction(); OracleCommand command = conn.CreateCommand(); command.CommandText = sqlquery; Compartilhar este post Link para o post Compartilhar em outros sites