none
Carregar ListBox com C# RRS feed

  • Pergunta

  •  Olá Pessoal,

      Estou com uma dúvida em relação de como carregar meu listbox em c# com os dados que estou buscando no meu banco de dados access.Consigo trazer apenas uma coluna da minha tabela. Queria saber/aprender como faço para buscar mais colunas.

    Meu método:

    public class Banco
    {
        string ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|banco.mdb;";
        public DataSet PesquisaMsgEspecialista()
        {

            OleDbConnection conexao = new OleDbConnection(ConnString);
            OleDbCommand comando = new OleDbCommand("Select * From SD_Especialista",conexao);
            OleDbDataAdapter adapter = new OleDbDataAdapter(comando);
            DataSet dados = new DataSet();
            adapter.Fill(dados);
            return dados;
        }

    }

    Meu método load, da minha página:

    protected void Page_Load(object sender, EventArgs e)
        {
            Banco b = new Banco();
           
            //statuscliente.Text = Session["especialista"].ToString();
     
             ListBox1.DataSource = b.PesquisaMsgEspecialista();
             ListBox1.DataTextField = "numeroincidente";
             //ListBox1.DataTextField = "datainicio";
             //ListBox1.DataTextField = "datafim";
             //ListBox1.DataTextField = "prioridade";
             //ListBox1.DataTextField = "versao";
             //ListBox1.DataTextField = "so";
             //ListBox1.DataTextField = "nome";
             //ListBox1.DataTextField = "observacao";
             //ListBox1.DataTextField = "informacao";
             ListBox1.DataBind();
        }

     

    terça-feira, 12 de novembro de 2013 14:21

Respostas

  • Seria mais ou menos assim:

    Código da Classe ( eu vou pedir desculpa mas, como não tenho a tabela não consigui testar então

    se tiver algum errinho você conserta)

    public class Banco
    {
    	string ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|banco.mdb;";
    	public DataTable PesquisaMsgEspecialista()
    	{
    		DataTable Tabela = new DataTable("tbEspecialista");
    		// vao ser o nosso DataValueField
    		Tabela.Columns.Add("numeroincidente"); 
    		Tabela.Columns[0].AllowDBNull = false;
    		// vai ser o nosso DataTextField
    		Tabela.Columns.Add("campos"); 
    		Tabela.Columns[1].AllowDBNull = false;                
    		////////**////////////////////////////////////////
    		OleDbConnection conexao = new OleDbConnection(ConnString);
    		OleDbCommand comando = new OleDbCommand("Select * From SD_Especialista",conexao);
    		using (OleDbDataReader reader = comando.ExecuteReader())
    		{
    			if (reader.HasRows)
    			{
    				while (reader.Read())
    				{
    					DataRow Row = Tabela.NewRow();
    					Row["numeroincidente"] = reader["numeroincidente"];
    					// aqui depois do igual se pode colocar reader["nome do campo"].ToString() e ir concatenando
    					// eu coloquei dois itens como exemplo mais se pode colocar vários!!!
    					Row["campos"] = reader["datainicio"].ToString() + " " + reader["datafim"].ToString();
    				}
    			}
    			if (reader != null)
    			{
    				reader.Close();
    			}
    		}                
    		return Tabela;
    	}
    }

    Chama na página

    //Meu método load, da minha página:
    protected void Page_Load(object sender, EventArgs e)
    {
    	if (!IsPostBack)
    	{
    		Banco b = new Banco();
    		
    		//statuscliente.Text = Session["especialista"].ToString();  
    		ListBox1.DataSource = b.PesquisaMsgEspecialista();
    		ListBox1.DataValueField = "numeroincidente";
    		ListBox1.DataTextField = "campos";
    		ListBox1.DataBind();
    	}
    }


    Fulvio Cezar Canducci Dias


    terça-feira, 12 de novembro de 2013 20:26

Todas as Respostas

  • Seria mais ou menos assim:

    Código da Classe ( eu vou pedir desculpa mas, como não tenho a tabela não consigui testar então

    se tiver algum errinho você conserta)

    public class Banco
    {
    	string ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|banco.mdb;";
    	public DataTable PesquisaMsgEspecialista()
    	{
    		DataTable Tabela = new DataTable("tbEspecialista");
    		// vao ser o nosso DataValueField
    		Tabela.Columns.Add("numeroincidente"); 
    		Tabela.Columns[0].AllowDBNull = false;
    		// vai ser o nosso DataTextField
    		Tabela.Columns.Add("campos"); 
    		Tabela.Columns[1].AllowDBNull = false;                
    		////////**////////////////////////////////////////
    		OleDbConnection conexao = new OleDbConnection(ConnString);
    		OleDbCommand comando = new OleDbCommand("Select * From SD_Especialista",conexao);
    		using (OleDbDataReader reader = comando.ExecuteReader())
    		{
    			if (reader.HasRows)
    			{
    				while (reader.Read())
    				{
    					DataRow Row = Tabela.NewRow();
    					Row["numeroincidente"] = reader["numeroincidente"];
    					// aqui depois do igual se pode colocar reader["nome do campo"].ToString() e ir concatenando
    					// eu coloquei dois itens como exemplo mais se pode colocar vários!!!
    					Row["campos"] = reader["datainicio"].ToString() + " " + reader["datafim"].ToString();
    				}
    			}
    			if (reader != null)
    			{
    				reader.Close();
    			}
    		}                
    		return Tabela;
    	}
    }

    Chama na página

    //Meu método load, da minha página:
    protected void Page_Load(object sender, EventArgs e)
    {
    	if (!IsPostBack)
    	{
    		Banco b = new Banco();
    		
    		//statuscliente.Text = Session["especialista"].ToString();  
    		ListBox1.DataSource = b.PesquisaMsgEspecialista();
    		ListBox1.DataValueField = "numeroincidente";
    		ListBox1.DataTextField = "campos";
    		ListBox1.DataBind();
    	}
    }


    Fulvio Cezar Canducci Dias


    terça-feira, 12 de novembro de 2013 20:26
  •   Olá Fulvio, muito obrigado pela atenção. Testei aqui porém está dando erro nessa linha:

    Linha:

       using (OleDbDataReader reader = comando.ExecuteReader())

    Erro:

    ExecuteReader requires an open and available Connection. The connection's current state is closed.

    Obrigado.
    quarta-feira, 13 de novembro de 2013 17:45
  •   Olá Fulvio, muito obrigado pela atenção. Testei aqui porém está dando erro nessa linha:

    Linha:

       using (OleDbDataReader reader = comando.ExecuteReader())

    Erro:

    ExecuteReader requires an open and available Connection. The connection's current state is closed.

    Obrigado.

    é só abrir a conexão meu amigo

    assim no código

    public class Banco
    {
    	string ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|banco.mdb;";
    	public DataTable PesquisaMsgEspecialista()
    	{
    		DataTable Tabela = new DataTable("tbEspecialista");
    		// vao ser o nosso DataValueField
    		Tabela.Columns.Add("numeroincidente"); 
    		Tabela.Columns[0].AllowDBNull = false;
    		// vai ser o nosso DataTextField
    		Tabela.Columns.Add("campos"); 
    		Tabela.Columns[1].AllowDBNull = false;                
    		////////**////////////////////////////////////////
    		OleDbConnection conexao = new OleDbConnection(ConnString);
    		conexao.Open();
    		OleDbCommand comando = new OleDbCommand("Select * From SD_Especialista",conexao);
    		using (OleDbDataReader reader = comando.ExecuteReader())
    		{
    			if (reader.HasRows)
    			{
    				while (reader.Read())
    				{
    					DataRow Row = Tabela.NewRow();
    					Row["numeroincidente"] = reader["numeroincidente"];
    					// aqui depois do igual se pode colocar reader["nome do campo"].ToString() e ir concatenando
    					// eu coloquei dois itens como exemplo mais se pode colocar vários!!!
    					Row["campos"] = reader["datainicio"].ToString() + " " + reader["datafim"].ToString();
    				}
    			}
    			if (reader != null)
    			{
    				reader.Close();
    			}
    		}                
    		conexao.Close();
    		return Tabela;
    	}
    }



    Fulvio Cezar Canducci Dias

    quarta-feira, 13 de novembro de 2013 17:55