как говорит заголовок, я не могу получить данные из 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>