Ошибка при получении данных из DataTableReader - PullRequest
0 голосов
/ 25 октября 2019

как говорит заголовок, я не могу получить данные из datatable, потому что я использую innerjoin, если я использую только одну таблицу, все будет хорошо, как только я добавлю внутреннее соединение, это выдаст мне эту ошибку:

похоже на ошибку в предложении sql, потому что она не возвращает никакого значения в datareader.

"System.InvalidOperationException: 'O DataTableReader é inválido para o DataTable atual' '.'"

здесь идет код

        Dim sql As String = "SELECT * FROM TOTAIS INNER JOIN FAT_PRODS ON TOTAIS.ID_FAT=FAT_PRODS.ID_FAT WHERE FAT_PRODS.ID_FAT=" + DataGridView1.SelectedRows(0).Cells(1).Value.ToString + ""
    Dim dadosretornados As System.Data.DataTableReader = buscadadosacess(sql)
    If dadosretornados.HasRows Then
        While dadosretornados.Read
            MsgBox(dadosretornados("ID_PROD"))
        End While

    End If

здесь есть функция buscadados

 Function buscadadosacess(sql As String)
    oConn.ConnectionString = strConn
    oConn.Open()

    If oConn.State = ConnectionState.Open Then
        ACommand = New OleDbCommand(sql, oConn)
        'define um dataAdapter
        AAdapter = New OleDbDataAdapter()
        AAdapter.SelectCommand = ACommand
        'define e preenche um DataTable com os dados
        ATabela = New DataTable()
        AAdapter.Fill(ATabela)
        ' associar campos a base de dados
        xy = ATabela.CreateDataReader
        ' Ler da tabela
        'linha = ACommand.ExecuteReader
    End If

    'Tipo de dados incorrecto na expressão de critérios.'

    Return xy

End Function

спасибо, ребята <3 </p>

1 Ответ

0 голосов
/ 25 октября 2019

ошибка была просто "."в SQL Setence здесь идет SQL SENTENCE Правильный:

        Dim sql As String = "select totais.id_fat,totais.valor_siva,totais.iva,totais.valortotal,totais.data,totais.nome_cliente,fat_prods.id_fat,fat_prods.id_prod,fat_prods.quantidade,fat_prods.preco,fat_prods.id_cliente,fat_prods.descricao from totais INNER JOIN fat_prods ON totais.id_fat=fat_prods.id_fat WHERE totais.id_fat=" + valor.ToString + ""

спасибо за помощь

...