none
Data reader erro. RRS feed

  • 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 Sub

    para  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 Sub

    No 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.

    terça-feira, 1 de novembro de 2016 12:16

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
    terça-feira, 1 de novembro de 2016 12:23

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
    terça-feira, 1 de novembro de 2016 12:23
  • Obrigado André, funcionou corretamente.

    Devo concluir entoa que o primeiro código funcionava corretamente pq era string.

    Obrigado, já estava há dois  com esse problema.

    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.

    sexta-feira, 4 de novembro de 2016 21:07
  • 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

    domingo, 6 de novembro de 2016 00:38
  • OBRIGADO, o problema era comigo. Falta de atenção.
    segunda-feira, 7 de novembro de 2016 18:01