REFERÊNCIA DE OBJETO NÃO DEFINIDA

LEOARS 12/04/2015 16:16:24
#445878
Olá estou tentando preencher uma listview com dados do BD,. Mas estou recebendo o erro abaixo na linha 17.

Referência de objeto não definida para uma instância de um objeto.

Linha 15: End If
Linha 16: If Not IsPostBack Then
Linha 17: ListView1.DataSource = Me.GetData()
Linha 18: ListView1.DataBind()
Linha 19: End If


Meu código


  Private Function GetData() As DataSet
Dim query As String = [Ô]SELECT top 5 * FROM Articles[Ô]
Dim cmd As New SqlCommand(query)
Using sda As New SqlDataAdapter()
cmd.Connection = Conexao.Conectar
sda.SelectCommand = cmd
Using ds As New DataSet()
sda.Fill(ds)
Return ds
End Using
End Using
End Function



  If Not IsPostBack Then
ListView1.DataSource = Me.GetData()
ListView1.DataBind()
End If



  <asp:ListView ID=[Ô]ListView1[Ô] runat=[Ô]server[Ô] GroupItemCount=[Ô]3[Ô] GroupPlaceholderID=[Ô]groupPlaceHolder1[Ô]
ItemPlaceholderID=[Ô]itemPlaceHolder1[Ô]>
<LayoutTemplate>
<table>
<asp:PlaceHolder runat=[Ô]server[Ô] ID=[Ô]groupPlaceHolder1[Ô]></asp:PlaceHolder>
</table>
</LayoutTemplate>
<GroupTemplate>
<tr>
<asp:PlaceHolder runat=[Ô]server[Ô] ID=[Ô]itemPlaceHolder1[Ô]></asp:PlaceHolder>
</tr>
</GroupTemplate>
<ItemTemplate>
<td>
<table border=[Ô]1[Ô] style=[Ô]width: 200px; height: 100px;
border: dashed 2px #04AFEF; background-color: #B0E2F5[Ô]>

<tr>
<td>
<b>Post: </b><span class=[Ô]Post[Ô]>
<%# Eval([Ô]Article[Ô])%></span><br />
<b>Descrição: </b><span class=[Ô]Article[Ô]>
<%# Eval([Ô]Descricao[Ô])%></span><br />
<b>Leia Mais: </b><span class=[Ô]Descricao[Ô]>
<%# DataBinder.Eval(Container.DataItem, [Ô]Url[Ô])%>[Ô]</span><br />
</td>
</tr>
</table>
</td>
</ItemTemplate>
</asp:ListView>
OCELOT 13/04/2015 09:54:49
#445883
De cara o que consigo ver de errado é esta parte dentro do GetData()
Using ds As New DataSet()
sda.Fill(ds)
Return ds
End Using

Neste caso você não deve usar o Using

O Using nunca deve ser usado em um objeto que vai ser retornado pelo método, você basicamente está definindo o DataSource do seu ListView para um DataSet que já teve o método Dispose chamado.

O Using deve ser usado apenas quando você não vai mais precisar usar este objeto em nenhum lugar, dentro ou fora do método.
Faça seu login para responder