Ir para conteúdo

POWERED BY:

Arquivado

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

acubane

Problemas com Relatorio

Recommended Posts

Tenho um formulario onde possuo 2 Text Box um com o nome "Nome" e outro "Endereço"

Alimentei meu text.box com um Datatable e criei um dataset para alimentar meu Data Grind

Mais quando clico no Botão para Exbir mostra o seguinte erro abaixo

Estou postando abaixo o codigo e o erro se alguem puder me ajudar

 

Codigo

 

Private Sub btnrelatorio_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnrelatorio.Click
		Dim tabela
		Dim oDataset As DataSet
		tabela = New DataTable
		tabela.Columns.Add("nome", System.Type.GetType("System.String"))
		tabela.Columns.Add("endereco", System.Type.GetType("System.String"))

		Dim dr As DataRow
		dr = tabela.NewRow()
		dr("nome") = txtnome.Text
		dr("endereco") = txtendereco.Text

		oDataset = New DataSet
		oDataset.Tables.Add("tabela")

		DatagridExibe.DataSource = oDataset.Tables("tabela").DefaultView
		DataGridExibe.DataBind()

	End Sub

Messagem de erro

 

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

 

Exception Details: System.Web.HttpException: The IListSource does not contain any data sources.

 

Source Error:

 

 

Line 61:

Line 62: DatagridExibe.DataSource = oDataset.Tables("tabela").DefaultView

Line 63: DataGridExibe.DataBind()

Line 64:

Line 65: End Sub

 

 

Source File: c:\inetpub\wwwroot\Formulario_Propostas\WebForm1.aspx.vb Line: 63

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testei seu código, mas não chegou a dar erro, só que a grid não carregou nenhum registro. E o erro que você postou quer dizer que sua DataSource não possui dados, e isto acontece por que você esqueceu de uma linha no seu código.

 

Depois dessa parte:

Dim dr As DataRow
dr = tabela.NewRow()
dr("nome") = txtnome.Text
dr("endereco") = txtendereco.Text

Adicione a seguinte linha

tabela.Rows.Add(dr)

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testei seu código, mas não chegou a dar erro, só que a grid não carregou nenhum registro. E o erro que você postou quer dizer que sua DataSource não possui dados, e isto acontece por que você esqueceu de uma linha no seu código.

 

Depois dessa parte:

Dim dr As DataRow
dr = tabela.NewRow()
dr("nome") = txtnome.Text
dr("endereco") = txtendereco.Text

Adicione a seguinte linha

tabela.Rows.Add(dr)

Abraços...

 

Add A Linha que você falou porem o erro persiste

Estou programando em asp.net 2.0 e o codigo não fica na mesma pagina onde esta o codigo em HTML esta em outra pagina

Compartilhar este post


Link para o post
Compartilhar em outros sites

Também utilizei com duas camadas, e usando o asp.net 2.0, no código que eu postei não gerou erro algum. Será que tem alguma particularidade que você não tenha postado?

 

Abraços...

 

So se o problema estivar no codigo HTML

Segue abaixo o codgio

<body>
<form id="Form1" method="post" runat="server">
<asp:textbox id="txtnome"  runat="server"></asp:textbox>
<asp:textbox id="txtendereco" runat="server"></asp:textbox>

<asp:button id="btnrelatorio" runat="server" Text="Gerar relatorio"></asp:button>

<asp:label id="Label1" runat="server">Nome</asp:label>
<asp:label id="Label2" runat="server">endereço</asp:label>

<asp:DataGrid id=DatagridExibe runat="server" DataSource="<%# oDataset>">
</asp:DataGrid>
</form>
</body>

E abaixo esta meu codigo em VB completo

Public Class WebForm1
	Inherits System.Web.UI.Page

	Sub relatorio()
		Dim tabela
		Dim oDataset As DataSet
		tabela = New DataTable
		tabela.Columns.Add("nome", System.Type.GetType("System.String"))
		tabela.Columns.Add("endereco", System.Type.GetType("System.String"))

		Dim dr As DataRow
		dr = tabela.NewRow()
		dr("nome") = txtnome.Text
		dr("endereco") = txtendereco.Text
		tabela.Rows.Add(dr)

		oDataset = New DataSet
		oDataset.Tables.Add("tabela")

		DatagridExibe.DataSource = oDataset.Tables("tabela").DefaultView
		DatagridExibe.DataBind()
	End Sub

	Private Sub btnrelatorio_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnrelatorio.Click
		DatagridExibe.CurrentPageIndex = 0
		relatorio()

	End Sub

	Private Sub DataGrid1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs)
		DatagridExibe.CurrentPageIndex = e.NewPageIndex
		relatorio()

	End Sub
End Class

Compartilhar este post


Link para o post
Compartilhar em outros sites

No seu HTML retire isto da Grid: DataSource="<%# oDataset>">.

É isto que esta dando o erro.

 

Abraços...

 

Ápos ter retirado o que me foi informado esta apresentando o seguinte erro

 

 

Exception Details: System.Web.HttpException: DataGrid with id 'DatagridExibe' could not automatically generate any columns from the selected data source.

 

Source Error:

 

 

Line 53:

Line 54: DatagridExibe.DataSource = oDataset.Tables("tabela").DefaultView

Line 55: DatagridExibe.DataBind()

Line 56: End Sub

Line 57:

 

Tambe fiz um testes adicionando o seguinte codigo dentro do meu datagrid

OnPageIndexChanged="DataGrid1_SelectedIndexChanged" porem aparece a mesma mensagem de erro falando que não é possivel gerar nenhuma coluna automaticamente

Compartilhar este post


Link para o post
Compartilhar em outros sites

na gridView você tem duas opções, marcar a opção Auto-Generate Fileds que ele pega todas as colunas do seu sorce e cria na grid ou adicionar uma por uma manualmente. Você tem que fazer uma das duas opções.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

na gridView você tem duas opções, marcar a opção Auto-Generate Fileds que ele pega todas as colunas do seu sorce e cria na grid ou adicionar uma por uma manualmente. Você tem que fazer uma das duas opções.

 

Abraços...

 

Fiz uma pesquisa mudei todo meu codigo e não deu em nada

Poderia me dar uma previa explicação referente ao Gridview

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.