ERRO DE CONSULTA...DATAREADER NAO TRAZ VALOR...
Pessoal, é o seguinte:
Fiz com que minha aplicação abrisse um outro formulário após cadastrar um cliente. Que é um formulário onde cadastro o PC desse cliente. Programei então para que minha rotina de Load desse formulário de PC fizesse um SELECT na tabela de clientes e trouxesse o Código do último cliente cadastrado e já jogasse no meu campo [Ô]Código do Cliente[Ô], que na verdade é uma MaskedTextBox.
Aà está, o erro que ocorre é na linha em que eu atribuo o valor que o DataReader encontrou para essa máscara...
A mensagem de erro que a exception traz é [Ô]ID_CLIENTE[Ô]... Debuguei a rotina passo a passo e o erro é esse mesmo...
Abaixo, o código que estou usando para fazer o select e jogar na máscara:
Private Sub Pc_Cliente_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
EsconderBARRAMENTOS()
Dim dtrPc As OleDb.OleDbDataReader
Try
strSql = [Ô]SELECT MAX(ID_CLIENTE) FROM TB_CLIENTE[Ô]
cnnSql = AbrirCnnAccess()
cmdPc.CommandText = strSql
cmdPc.Connection = cnnSql
dtrPc = cmdPc.ExecuteReader
dtrPc.Read()
mskCodCli.Text = dtrPc([Ô]ID_CLIENTE[Ô])
Catch ex As Exception
MessageBox.Show([Ô]Ocorreu um erro: [Ô] & vbNewLine & Err.Description.ToString, _
[Ô]Erro ao Trazer Código de Cliente[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End Try
dtrPc.Close()
dtrPc = Nothing
End Sub
PS: Estou fazendo em vb2010 com Access 2007, sim , Access... Infelizmente a universidade nos obriga a fazer o projeto com essa .
Enfim, gostaria que alguém me desse um help...
Grato desde já! :)
Fiz com que minha aplicação abrisse um outro formulário após cadastrar um cliente. Que é um formulário onde cadastro o PC desse cliente. Programei então para que minha rotina de Load desse formulário de PC fizesse um SELECT na tabela de clientes e trouxesse o Código do último cliente cadastrado e já jogasse no meu campo [Ô]Código do Cliente[Ô], que na verdade é uma MaskedTextBox.
Aà está, o erro que ocorre é na linha em que eu atribuo o valor que o DataReader encontrou para essa máscara...
A mensagem de erro que a exception traz é [Ô]ID_CLIENTE[Ô]... Debuguei a rotina passo a passo e o erro é esse mesmo...
Abaixo, o código que estou usando para fazer o select e jogar na máscara:
Private Sub Pc_Cliente_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
EsconderBARRAMENTOS()
Dim dtrPc As OleDb.OleDbDataReader
Try
strSql = [Ô]SELECT MAX(ID_CLIENTE) FROM TB_CLIENTE[Ô]
cnnSql = AbrirCnnAccess()
cmdPc.CommandText = strSql
cmdPc.Connection = cnnSql
dtrPc = cmdPc.ExecuteReader
dtrPc.Read()
mskCodCli.Text = dtrPc([Ô]ID_CLIENTE[Ô])
Catch ex As Exception
MessageBox.Show([Ô]Ocorreu um erro: [Ô] & vbNewLine & Err.Description.ToString, _
[Ô]Erro ao Trazer Código de Cliente[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End Try
dtrPc.Close()
dtrPc = Nothing
End Sub
PS: Estou fazendo em vb2010 com Access 2007, sim , Access... Infelizmente a universidade nos obriga a fazer o projeto com essa .
Enfim, gostaria que alguém me desse um help...
Grato desde já! :)
LIBELOLAOLV
Primeiro postou no Local errado posta em VB.NET
Não te aconselho fazer isso se o seu codigo e um numero unico , pois com isso ou pode ter duplicidade no banco , ou pode ter erro no momento de realizar o insert pela duplicidade de codigo , isso depende de como modelou o banco
Se ocorrer de 2 pessoas usarem seu programa de cadastro simultaneamente, ao abrir de inicio as 2 telas trouxeram o mesmo numero. como você faz neste caso no momento de gravar ? Se uma pessoa grava a outra grava depois o codigo da tela era o mesmo ..
No que vejo o certo e você só disponibilizar o codigo apos ele ser inserido assim garantido a integridade da informação.
Primeiro postou no Local errado posta em VB.NET
Não te aconselho fazer isso se o seu codigo e um numero unico , pois com isso ou pode ter duplicidade no banco , ou pode ter erro no momento de realizar o insert pela duplicidade de codigo , isso depende de como modelou o banco
Se ocorrer de 2 pessoas usarem seu programa de cadastro simultaneamente, ao abrir de inicio as 2 telas trouxeram o mesmo numero. como você faz neste caso no momento de gravar ? Se uma pessoa grava a outra grava depois o codigo da tela era o mesmo ..
No que vejo o certo e você só disponibilizar o codigo apos ele ser inserido assim garantido a integridade da informação.
mude o SQL para esse
SELECT MAX(ID_CLIENTE) AS ID_CLIENTE FROM TB_CLIENTE
SELECT MAX(ID_CLIENTE) AS ID_CLIENTE FROM TB_CLIENTE
Faça seu login para responder