Ir para conteúdo

POWERED BY:

Arquivado

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

alexandremanowar

[Resolvido] Erro no dataGridView

Recommended Posts

E ae pessoal beleza

 

Estou tentando popular um datagridview a partir de um dataset mas o datagridview simplesmente não aparece na hora que executo o aplicativo, aparece todos os componentes do form menos ele! Não aparece nenhuma mensagem de erro simplesmente ele não aparece. Meu código esta assim:

 

Class que executa o dataset:

public DataSet BuscarDados(string strQuery)
	{

		SqlConnection cn = null;
		DataSet ds = new DataSet();
		try
		{
			cn = AbrirBanco();
			SqlDataAdapter da = new SqlDataAdapter(strQuery, cn);
			da.Fill(ds,"Tabela");
		}
		finally
		{
			FecharBanco(cn);
		}

		return ds;


	}

 

E assim esta o método que executa o datagridview no form:

 

Conexao ExecutaStringSQL = new Conexao();

DataSet ListaDados = new DataSet();

		ListaDados = ExecutaStringSQL.BuscarDados("select  * from tabela ");
		
		GridView1.DataSource = ListaDados;
		GridView1.DataMember = "Tabela";

Simplesmente aparece todos os componentes do form menos o datagridview e não mostra nenhuma mensagem de erro. Onde posso estar errando?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O componente não aparece ou os dados não aparecem?

Tente assim:

GridView1.DataSource = ListaDados["Tabela"]
E remova o DataMember.

 

ps.: Só uma observação, em .Net, o padrão para nomes de variáveis é sempre começar com letra minúscula :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

E a e cara beleza

 

Mais uma vez obrigado pela ajuda, usando o que você me passou esta me dando a seguinte mensagem de erro:

Não é possível aplicar a indexação com [] a uma expressão do tipo 'System.Data.DataSet

 

Fiz um teste em um segundo datagridview colocanco uma tabela automaticamente feito no próprio datagridview usando o assistente, ele adicionou a tabela e executou tudo quando eu executo o programa ele lista todo banco de dados no grid, mas esse que estou tentando fazer manualmente não funfa! Eu poderia usar o outro modo usando o assistênte mas quero aprender fazer na mão também.

Onde estou errando? Porque será que o grid não esta exibindo nada? Será que o erro esta na minha função de dataset que chamei de BuscaDados Derrepente elanão esta retornando os dados do baco? Já pesquisei novamente mas parece que estou fazendo tudo certo! Vou postar abaixo a função e método que esta no load do form:

 

class do dataset:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Configuration;
using System.Text;
using System.Data;
using System.Data.SqlClient;

/// <summary>
/// Summary description for Conexao
/// </summary>
public class Conexao
{
	public Conexao()
	{
		//
		// TODO: Add constructor logic here
		//
	}

	//Método para Abrid Conexão o Banco de Dados
	private static SqlConnection AbrirBanco()
	{

		string conn = ConfigurationManager.ConnectionStrings["SQLExpress2008"].ConnectionString; //"conn" é o nome do connection string no node do seu arquivo XML
		SqlConnection cn = new SqlConnection(conn);
		cn.Open();

		return cn;


	}

	//Método para Fechar a Conexão com o  Banco de Dados
	public static void FecharBanco(SqlConnection cn)
	{

		if (cn != null && cn.State == ConnectionState.Open)
		{
			cn.Close();
		}

	}


	public DataSet BuscarDados(string strQuery)
	{

		SqlConnection cn = null;
		DataSet ds = new DataSet();
		try
		{
			cn = AbrirBanco();
			SqlDataAdapter da = new SqlDataAdapter(strQuery, cn);
			da.Fill(ds,"Tabela");
		}
		finally
		{
			FecharBanco(cn);
		}

		return ds;


	}


}

método que esta no load do form:

 

protected void Page_Load(object sender, EventArgs e)
	{
		Conexao ExecutaStringSQL = new Conexao();
		DataSet ListaDados = new DataSet();

		ListaDados = ExecutaStringSQL.BuscarDados("select * from senha ");

		GridView1.DataSource = ListaDados;
	}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aaaah, agora que eu vi, é web application.

Faz assim:

GridView1.DataSource = ListaDados;
GridView1.DataBind();

Em windows application não precisa usar o bind, só na web, estava confundindo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

E a e cara beleza, cara você estava certo só faltava essa linha que diferencia do winforms rsrsrsrs

 

cara funcionou valeu pela atenção.

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.