WARNING NAS TRANSACOES
Warning 1 Variable [ô]objtransaction[ô] is used before it has been assigned a value. A null reference exception could result at runtime. G:\PRJ_TCC\pizzaria_kaylane\Dados\Banco.vb 124 17 Dados
Warning 2 Function [ô]ExecuteNonQuery[ô] doesn[ô]t return a value on all code paths. A null reference exception could occur at run time when the result is used. G:\PRJ_TCC\pizzaria_kaylane\Dados\Banco.vb 134 5 Dados
segue a imagem do codigo:
O segundo caso é por você ter criado uma Function mas não retorna nenhum valor dela, quando você não precisa retornar valor não use Function, use Sub
Só um detalhe sobre o seu código, é que essa transação sua é basicamente inútil, já que a utilidade de uma transação é de se poder executar vários comandos SQL em uma mesma conexão para só no final, se tudo ocorreu com sucesso você dar um commit e garantir que todos os comandos vão ser gravados, ou caso de um erro você da um rollback e desfaz todos os comandos.
Com um comando só a transação é implÃcita no SQL Server, se der erro o comando não vai salvar nada de qualquer forma.
Citação::
O primeiro caso é apenas uma mal interpretação do VB.Net que detecta que o objtransaction pode não ter sido inicializado, mas pelo seu código acredito que isso nunca vá acontecer
O segundo caso é por você ter criado uma Function mas não retorna nenhum valor dela, quando você não precisa retornar valor não use Function, use Sub
Só um detalhe sobre o seu código, é que essa transação sua é basicamente inútil, já que a utilidade de uma transação é de se poder executar vários comandos SQL em uma mesma conexão para só no final, se tudo ocorreu com sucesso você dar um commit e garantir que todos os comandos vão ser gravados, ou caso de um erro você da um rollback e desfaz todos os comandos.
Com um comando só a transação é implÃcita no SQL Server, se der erro o comando não vai salvar nada de qualquer forma.
olá amigo beleza?
então esse codigo é apenas a camada de dados
eu realizo varios comandos nas camadas de negocios pois se trata de um software para pizzaria, faço inclusão simultanea em mais de 1 tabela na classe de pedidos
Basicamente se ela é uma função para inserir ou alterar dados de apenas uma tabela ela serve mas não precisa da transação.
Uma outra dica, no seu tratamento de exceptions nunca use o [Ô]Throw ex[Ô] como você fez para relançar uma exception, use apenas [Ô]Throw[Ô]
Try
[ô]seu código
Catch ex As Exception
[ô]mais código
Throw
End Try
Digamos que o erro no seu código aconteça na linha [Ô]objSqlCommand.ExecuteNonQuery()[Ô], a diferença entre usar [Ô]Throw ex[Ô] e [Ô]Throw[Ô] é que no primeiro quem tratar esta exception vai receber como se o erro tivesse ocorrido na linha do [Ô]Throw ex[Ô], já se usar o [Ô]Throw[Ô] o erro vai aparecer para quem tratar ele como o original, indicando que o erro aconteceu na linha em que você chamou o [Ô]objSqlCommand.ExecuteNonQuery()[Ô], parece ser coisa insignificante, mas faz bastante diferença na hora de debugar caso ocorra alguma exception.