Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mestre fyoda

DataReader nao retorna nada, Meu banco de dadsos tem 3 registros!

Recommended Posts

codigo que chama a função

Public Conexao As New Conexao
Sub Page_Load(ByVal Sender As Object, ByVal E As EventArgs)
  Dim dr As Oracle.DataAccess.Client.OracleDataReader = Conexao.RetornaData("Select * from Produto")
While dr.Read()
  ListBox1.Items.Add(dr.Item(0) & " - " & dr.Item(1))
End While
End Sub

função que está dentro da classe

Public Function RetornaData(ByVal query As String)

Dim dt As New Data.DataTable

Dim da As New Oracle.DataAccess.Client.OracleDataAdapter

Dim Conexao As New Oracle.DataAccess.Client.OracleConnection("Password=janio1;User ID=Rafael;Data Source=localhost")

Dim cmd As New Oracle.DataAccess.Client.OracleCommand

Dim dr As Oracle.DataAccess.Client.OracleDataReader

Try

Conexao.Open()

Catch ex As Exception

MsgBox("Erro ao tentar conectar ao banco de dados " + ex.Message, MsgBoxStyle.Critical, "Aviso")

Return Nothing

Exit Function

End Try

Try

cmd = Conexao.CreateCommand

cmd.CommandText = query

dr = cmd.ExecuteReader

Return dr

Catch ex As Exception

Return Nothing

Finally

cmd.Dispose()

Conexao.Close()

End Try

End Function

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu nem sei como o seu código não deu erro pra você, pois aqui deu erro, pois no Finally do seu Try você fecha a conexão, fechando a conexão você destroi seu DataReader também.

Erro: Invalid attempt to call Read when reader is closed.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tirei o close mas mesmo assim nao esta retornando nada, testei no meu banco de dados e me retorna 3 registros !

Public Function RetornaData(ByVal query As String) As Oracle.DataAccess.Client.OracleDataReader

		Dim dt As New Data.DataTable
		Dim da As New Oracle.DataAccess.Client.OracleDataAdapter
		Dim Conexao As New Oracle.DataAccess.Client.OracleConnection("Password=janio1;User ID=Rafael;Data Source=localhost")
		Dim cmd As New Oracle.DataAccess.Client.OracleCommand
		Dim dr As Oracle.DataAccess.Client.OracleDataReader

		Try
			Conexao.Open()
		Catch ex As Exception
			MsgBox("Erro ao tentar conectar ao banco de dados " + ex.Message, MsgBoxStyle.Critical, "Aviso")
			Return Nothing
			Exit Function
		End Try
		Try
			cmd = Conexao.CreateCommand
			cmd.CommandText = query
			dr = cmd.ExecuteReader
			Return dr
		Catch ex As Exception
			Return Nothing
		Finally
			cmd.Dispose()

		End Try

	End Function

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.