ERRO DE CONSULTA...DATAREADER NAO TRAZ VALOR...

LIBELOLAOLV 17/11/2013 22:09:51
#431207
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á! :)
MADMAX 18/11/2013 11:49:43
#431223
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.
FILMAN 18/11/2013 14:41:00
#431228
mude o SQL para esse

SELECT MAX(ID_CLIENTE) AS ID_CLIENTE FROM TB_CLIENTE
Faça seu login para responder