Usuário com melhor resposta
Erro ao popular ListBox, DataReader

Pergunta
-
E ae pessoal, estou com um problema ao popula o listbox..
Estou fazendo da seguinte maneira:
Public Function PreencherListView()
Dim obj As New CADASTRO
Dim sql As String = "SELECT * FROM LIVRO"
Dim dr As SqlDataReader
Using con As New SqlConnection(ConnectionStringSql)
Dim cmd As New SqlCommand(sql, con)
con.Open()
dr = cmd.ExecuteReader()
While dr.Read()
obj.Nome = dr("NOME").ToString()
obj.Autor = dr("AUTOR").ToString()
obj.idt_livro = dr("IDT_LIVRO").ToString()
End While
End Using
Return dr
End Functione na pagina Default.aspx faço :
Public Sub Popular()
Dim rdr As SqlDataReader
rdr = CADASTRODAO.PreencherListView()
lstboxteste.DataSource = rdr
lstboxteste.DataMember = "NOME"
lstboxteste.DataValueField = "IDT_LIVRO"
lstboxteste.DataBind()
End SubProtected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
Popular()
End Ifporém da o seguinte erro:
"Tentativa inválida de chamar FieldCount quando o leitor estava fechado.";
Podem me ajudar??
Respostas
-
Quase isso.
obj.ToString() vai fazer com que seja retornada uma string, e o que deve ser retornado é o objeto não uma representação dele.
return obj
- Marcado como Resposta Ricardo RussoModerator quinta-feira, 3 de janeiro de 2013 11:38
Todas as Respostas
-
-
O correto é isto:?
Public Function PreencherListView()
Dim obj As New CADASTRO
Dim sql As String = "SELECT * FROM LIVRO"
Dim dr As SqlDataReader
Using con As New SqlConnection(ConnectionStringSql)
Dim cmd As New SqlCommand(sql, con)
con.Open()
dr = cmd.ExecuteReader()
While dr.Read()
obj.Nome = dr("NOME").ToString()
obj.Autor = dr("AUTOR").ToString()
obj.idt_livro = dr("IDT_LIVRO").ToString()
End While
End Using
Return obj.ToString()
End Function -
Quase isso.
obj.ToString() vai fazer com que seja retornada uma string, e o que deve ser retornado é o objeto não uma representação dele.
return obj
- Marcado como Resposta Ricardo RussoModerator quinta-feira, 3 de janeiro de 2013 11:38