INSERT INTO EXECUTA MAS NAO REGISTRA

RODSANOLIV 10/02/2014 03:15:28
#434464
Bom dia!

Sou novo no fórum e também estou iniciando os meus estudos em VB.

Estou com um problema, na qual, não estou encontrando uma solução e já quebrei a cabeça pesquisando em tudo que é site e fórum a procura desta solução.

Bom, eu estou desenvolvendo uma espécie de Agenda Eletrônica, e criei(tentei) uma conexão do VB com o Oracle, até ai tudo bem. O código executa normalmente, sem falhas ou erros, e apresenta a mensagem de cliente cadastrado, porém, as informações adicionadas aos textbox não são registradas no banco de dados.
Resumindo: O código executa mas não registra.

Alguém tem alguma ideia do que pode ser?
O provedor utilizado é System.Data.OleDb

Grato desde já!
NETMANIA 10/02/2014 07:42:44
#434465
Você pode postar o trecho do código com problema para verificarmos o motivo do erro?
RODSANOLIV 10/02/2014 15:29:17
#434494
Este é o código:

Module BancodeDados

Public Const StringConexao As String = [Ô]Provider=OraOlEDB.Oracle; Data Source=XE; User ID=system; Password=1935[Ô]

Public cnn As System.Data.OleDb.OleDbConnection

....

End Module


ComandoSQL = [Ô]INSERT INTO AES_SOFT([Ô] &
[Ô]NOME, TELEFONE_RES, TELEFONE_CEL, IDADE, MED_CORPO, PESO, PS[Ô] &
[Ô]TRATAMENTO, SESSOES, VALOR, TOTAL, AGENDADO, HORARIO) [Ô] &
[Ô]VALUES ([ô][Ô] & txtNome.Text & [Ô][ô],[ô][Ô] & MaskTel1.Text & [Ô][ô],[ô][Ô] & MaskTel2.Text & [Ô][ô],[ô][Ô] & MaskIdade.Text & [Ô][ô],[ô][Ô] & MaskMedCorpo.Text & [Ô][ô],[ô][Ô] & MaskPeso.Text & [Ô][ô],[ô][Ô] & MaskPS.Text & [Ô][ô],[ô][Ô] & CBTratamento.Text & [Ô][ô],[ô][Ô] & NupSessoes.Text & [Ô][ô],[ô][Ô] & MaskValor.Text & [Ô][ô],[ô][Ô] & MaskTotal.Text & [Ô][ô],[ô][Ô] & MaskData.Text & [Ô][ô],[ô][Ô] & CBHora.Text & [Ô][ô])[Ô]

AbrirConexao()

cmdInserir = New System.Data.OleDb.OleDbCommand()
cmdInserir.Connection = cnn
cmdInserir.CommandText = ComandoSQL

cmdInserir.ExecuteNonQuery()

MsgBox([Ô]Cadastro realizado com sucesso[Ô], vbInformation, [Ô]Sucesso[Ô])

FecharConexao()

End Sub
NETMANIA 10/02/2014 16:14:04
#434498
Vamos as dúvidas:

Quais são os tipos de campos?
Retorna algum erro quando você executa o comando?
Se você pegar este comando e colocar para executar direto no banco de dados, ocorre algum erro?
RODSANOLIV 10/02/2014 16:18:25
#434500
Segue o código com os tipos dos campos

lblNome = Convert.ToString(txtNome.Text)
lblTelefone1 = Convert.ToDouble(MaskTel1.Text)
lblTelefone2 = Convert.ToDouble(MaskTel2.Text)
lblIdade = Convert.ToInt32(MaskIdade.Text)
lblMedCorpo = Convert.ToDouble(MaskMedCorpo.Text)
lblPeso = Convert.ToInt32(MaskPeso.Text)
lblPS = Convert.ToString(MaskPS.Text)
lblTratamento = Convert.ToString(CBTratamento.Text)
lblSessoes = Convert.ToInt32(NupSessoes.Text)
lblValor = Convert.ToDouble(MaskValor.Text)
lblTotal = Convert.ToDouble(MaskTotal.Text)
lblData = Convert.ToString(MaskData.Text)
lblHora = Convert.ToString(CBHora.Text)

Da mesma forma esta no Oracle.

Referente ao erro, não apresenta mensagem de erro qualquer. Ele apresenta a mensagem de Cliente Cadastrado, porém, não cadastra.

No próprio banco de dados funciona normalmente.
NILSONTRES 10/02/2014 18:08:58
#434510
Quem retorna cliente cadastrado , é vc mesmo, no entanto, não tem nenhum tratamento de erro no seu codigo, isso
pode estar escondendo os erros.
Citação:

lblData = Convert.ToString(MaskData.Text)


Data e Hora para String, acho que nenhum banco de dados aceita, a não ser que no seu banco vc tenha criado o campo Data como String, e isso vc não deve fazer nunca.
RODSANOLIV 10/02/2014 18:50:28
#434514
Mesmo não sendo o correto deixei a Data como Varchar e no VB, a mesma como String, somente pra teste.
Porém, mesmo assim apresenta a mensagem de cliente cadastrado, porém, não registra ://
Mudei a codificação da conexão pra vê se resolvia, porém, continuo com o mesmo problema.
JONATHANSTECKER 11/02/2014 08:30:42
#434530
Olá RODSANOLIV, seja bem vindo ao VBMania.

Faça um teste, insira um novo registro manualmente no banco de dados e altere o seu código colocando os mesmos valores dos registros diretamente no seu código fonte. Dessa maneira saberemos se o erro ocorre está ocorrendo por causa das conversões. Só tome atenção em preencher os valores exatamente no mesmo formato preenchido no banco de dados.

Exemplo:
ComandoSQL = [Ô]INSERT INTO AES_SOFT([Ô] &
[Ô]NOME, TELEFONE_RES, TELEFONE_CEL, IDADE, MED_CORPO, PESO, PS[Ô] &
[Ô]TRATAMENTO, SESSOES, VALOR, TOTAL, AGENDADO, HORARIO) [Ô] &
[Ô]VALUES ([ô][Ô] & [txt-color=#e80000][Ô]RODSANOLIV[Ô][/txt-color] & [Ô][ô],[ô][Ô] & [txt-color=#e80000][Ô](47) 9999-9999[Ô][/txt-color] & [Ô][ô],[ô][Ô] & MaskTel2.Text & [Ô][ô],[ô][Ô] & MaskIdade.Text & [Ô][ô],[ô][Ô] & MaskMedCorpo.Text & [Ô][ô],[ô][Ô] & MaskPeso.Text & [Ô][ô],[ô][Ô] & MaskPS.Text & [Ô][ô],[ô][Ô] & CBTratamento.Text & [Ô][ô],[ô][Ô] & NupSessoes.Text & [Ô][ô],[ô][Ô] & MaskValor.Text & [Ô][ô],[ô][Ô] & MaskTotal.Text & [Ô][ô],[ô][Ô] & MaskData.Text & [Ô][ô],[ô][Ô] & CBHora.Text & [Ô][ô])[Ô]


Após feito isso nos avise do resultado ocorrido.
RODSANOLIV 15/02/2014 03:45:45
#434824
Olá Jonathan! Agradeço pelas boas vindas e peço desculpas pela demora na resposta, é que trabalho no período da noite e as vezes fico sem tempo pra acessar o fórum.

Vou fazer o recomendado por você e ainda hoje lhe darei uma resposta sobre

Desde já fico muito agradecido pela sua atenção.
RODSANOLIV 21/02/2014 01:08:46
#435064
Bom dia Galera !!

Jonathan, fiz o recomendado, porém, sem êxito.
Continuo quebrando um pouco a cabeça, analisando, e acho que o problema esta nas conversões.

Alguma outra ideia ou sugestão do que pode ser?



TECLA 21/02/2014 07:11:13
#435068
Citação:

Alguma outra ideia ou sugestão do que pode ser?


Sim, assim como solicitou alguns dos nossos colegas, peço que execute o comando SQL dentro do Oracle e veja se o registro é inserido.

Coloque um break point na linha [txt-color=#e80000]cmdInserir.ExecuteNonQuery()[/txt-color] e assim que o compilador dá uma parada, pegue o conteúdo da variável [txt-color=#e80000]ComandoSQL [/txt-color] e cole dentro do Oracle.

Teste e retorne o resultado aqui no fórum.
Página 1 de 2 [12 registro(s)]
Faça seu login para responder