INSERT INTO EXECUTA MAS NAO REGISTRA
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á!
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á!
Você pode postar o trecho do código com problema para verificarmos o motivo do erro?
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
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
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?
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?
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.
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.
Quem retorna cliente cadastrado , é vc mesmo, no entanto, não tem nenhum tratamento de erro no seu codigo, isso
pode estar escondendo os erros.
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.
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.
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.
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.
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:
Após feito isso nos avise do resultado ocorrido.
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.
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.
Vou fazer o recomendado por você e ainda hoje lhe darei uma resposta sobre
Desde já fico muito agradecido pela sua atenção.
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?
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?
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.
Faça seu login para responder