Usuário com melhor resposta
Data reader erro.

Pergunta
-
Bom dia pessoal, venho aqui com um problema que deve ser simples pra quem conhece, mas no meu caso que sou apenas iniciante tá difícil. Já pesquisei na net e nao consigo encontrar um erro parecido com o meu.
eu uso vb e Access.
Eu tenho um projeto com inúmeros formulários. Para preencher um Combobox uso o seguinte:
Private Sub COMBOPROD()
Dim con As New OleDbConnection
con.ConnectionString = My.Settings.NC15
con.Open()
Dim comando As New OleDbCommand()
comando.CommandText = "SELECT * FROM PRODUTOS ORDER BY CODPROD ASC"
comando.CommandType = CommandType.Text
comando.Connection = con
Dim leitor As OleDbDataReader
leitor = comando.ExecuteReader()
CMBPROD.Items.Clear()
Do While leitor.Read
CMBPROD.Items.Add(leitor("CODPROD"))
Loop
con.Close()
CMBPROD.SelectedIndex = 0
End Subpara carregar as informações do produto, uso o seguinte:
Private Sub INFORPROD()
Dim con As New OleDbConnection
con.ConnectionString = My.Settings.NC15
con.Open()
Dim comando As New OleDbCommand()
comando.CommandText = "SELECT * FROM PRODUTOS WHERE CODPROD = '" & CMBPROD.Text & " ' "
comando.CommandType = CommandType.Text
comando.Connection = con
Dim leitor As OleDbDataReader
leitor = comando.ExecuteReader()
leitor.Read()
TXTFORNEC.Text = leitor("FORNECEDOR").ToString
TXTNOME.Text = leitor("NOME").ToString
TXTDESCRI.Text = leitor("DESCRICAO").ToString
TXTPRECOVEND.Text = leitor("PRECOVENDA").ToString
CODCLI = leitor("CÓDIGO")
con.Close()
End SubNo primeiro formulário, de CADASTRO DE CLIENTE, funciona perfeitamente.
No segundo formulário : CADASTRO DE PRODUTOS, que é este que coloquei o código acima, nao funciona.
o PRIMEIRO funciona perfeitamente, o código é o mesmo.Dá o seguinte erro:
Excepción no controlada del tipo 'System.Data.OleDb.OleDbException' en System.Data.dll
Información adicional: Data type mismatch in criteria expression.alguém pode me abrir caminhos? Obrigado pela atenção.
- Movido AndreAlvesLimaModerator terça-feira, 8 de novembro de 2016 14:43
Respostas
-
Olá Marcos,
A coluna CODPROD no seu banco de dados, é string ou numérica?
Se for numérica, você deve tirar as aspas simples na construção do comando "SELECT". Ficaria assim:
comando.CommandText = "SELECT * FROM PRODUTOS WHERE CODPROD = " & CMBPROD.Text
Testa aí e retorna o resultado para nós aqui.
Valeu!
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Marcado como Resposta ROHEN_MARCOS terça-feira, 1 de novembro de 2016 13:01
Todas as Respostas
-
Olá Marcos,
A coluna CODPROD no seu banco de dados, é string ou numérica?
Se for numérica, você deve tirar as aspas simples na construção do comando "SELECT". Ficaria assim:
comando.CommandText = "SELECT * FROM PRODUTOS WHERE CODPROD = " & CMBPROD.Text
Testa aí e retorna o resultado para nós aqui.
Valeu!
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Marcado como Resposta ROHEN_MARCOS terça-feira, 1 de novembro de 2016 13:01
-
-
Boa noite amigo.Volto agora a ter um problema parecido. Uso o mesmo código em outro formulário e recebo a mensagem :
Excepción no controlada del tipo 'System.InvalidOperationException' en System.Data.dll
Información adicional: Não existem dados para a linha ou coluna.Meu banco está com dados.
Obrigado.
-
Execute a mesma consulta com o mesmo código no banco e veja se retorna dados (provavelmente não).
Antes de atribuir o valor as variáveis você pode fazer uma verificação para evitar a exception:
If leitor("FORNECEDOR") != DBNull.Value Then .... End If
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco -