REFERÊNCIA DE OBJETO NÃO DEFINIDA
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
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>
De cara o que consigo ver de errado é esta parte dentro do GetData()
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.
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