none
carregar combobox pelo datasouce, mas com uma linha em branco RRS feed

  • Pergunta

  • Olá pessoal, novamente.

    Queria saber se alguem tem uma dica de como eu posso resolver um problema.

    Estou carregando um combobox pelo seu datasouce, a partir da tabela cliente no banco de dados.

    Ai quando o usuario vai fazer uma venda ele tem que escolher o cliente pra quem vai vender no combobox, só que quando o combo carrega, ele ja carrega com o primeiro nome que ta no banco. Teria um jeito desse combo carregar no primeiro estagio como vazio, tipo adicionar uma linha em branco, sem essa linha estar no banco de dados?

     

    Ajudem, por favor!!

    Obrigada.

    terça-feira, 18 de janeiro de 2011 18:54

Respostas

  • Oi Lucimeire,

    Tem uma discussão sobre algo parecido no seguinte tópico: "http://social.msdn.microsoft.com/Forums/pt-BR/clientept/thread/f34a51bd-4ce6-4f83-af3a-2b5850ddafc8"

    Dá um conferida se te ajuda.

    Att.,


    Daniel Ethur Porto Alegre/RS
    quinta-feira, 3 de fevereiro de 2011 20:13
  • Particularmente faço o seguinte:

    Exemplificando com cliente, Crio um lista de clientes carrego a lista com os cliente do banco depois crio um novo objeto do tipo cliente esse sim tem as propriedades nulas ou em branco e adiciono a lista depois carrego a combobox com essa lista!

    nunca tive problema usando isso!

    terça-feira, 8 de fevereiro de 2011 12:24
  • Eu geralmente uso um List<T> para popular o dataSource do comboBox, no seu caso eu faria o seguinte:

    List<Cliente> listaClientes = GetCliente();
    Cliente opcaoSelecionar = New Cliente();
    opcaoSeleciona.Nome = "Selecione";
    listaCliente.Insert(0,opcaoSeleciona);
    
    ComboBox CboCliente = new ComboBox();
    CboClient.DataSource = listaClientes;
    CboClient.DisplayMember = "Nome";
    

     

     


    Paulo Moreira
    terça-feira, 8 de fevereiro de 2011 17:12
  • Segue um simples exemplo de como pode ser feito a extração de um List do BD, neste caso um list de Estado:

     public static List<EstadoModel> ObterLista()
        {
          SqlConnection conn = UtilDB.ObterConexao();
          StringBuilder sql = new StringBuilder();
          sql.Append("SELECT Id, NomeEstado ");
          sql.Append("FROM Estado ");
          SqlCommand cmd = new SqlCommand(sql.ToString(), conn);
          List<EstadoModel> lista = new List<EstadoModel>();
          try
          {
            conn.Open();
            SqlDataReader rdr = cmd.ExecuteReader();
            if (rdr.HasRows)
            {
              while (rdr.Read())
              {
                EstadoModel obj = new EstadoModel();
                obj.Id = Convert.ToInt32(rdr["Id"]);
                obj.NomeEstado = rdr["NomeEstado"].ToString();
                lista.Add(obj);
              }
            }
          }
          catch
          {
          }
          finally
          {
            conn.Close(); 
          }
    
          return lista;
        }
    

    Caso preencha o data source do combo com um list o comando que lhe passei acima funcionará perfeitamente para o que deseja fazer.

    Abraços!


    Estudar, Estudar e Estudar! Não existe caminho curto.
    quinta-feira, 10 de fevereiro de 2011 11:01

Todas as Respostas

  • Bom dia Lucimeire tente o seguinte e ver se funfa logo após atribuir o datasouce ao seu combo:

    comboBox1.SelectedIndex = -1;
    
    Abraços, espero ter sido útil qualquer coisa posta ai!

     


    Beleza de Creuza!
    • Sugerido como Resposta hamiltonj quinta-feira, 10 de fevereiro de 2011 01:27
    quarta-feira, 19 de janeiro de 2011 11:26
  • oh pablo, nao adiantou.

     

    Acho que a solucao vai ser eu cadastrar no banco mesmo um item de codigo 1, com valores zero, neh???

     

    Alguem tem alguma solução ai gente??

    quarta-feira, 26 de janeiro de 2011 20:49
  • Oi Lucimeire,

    Tem uma discussão sobre algo parecido no seguinte tópico: "http://social.msdn.microsoft.com/Forums/pt-BR/clientept/thread/f34a51bd-4ce6-4f83-af3a-2b5850ddafc8"

    Dá um conferida se te ajuda.

    Att.,


    Daniel Ethur Porto Alegre/RS
    quinta-feira, 3 de fevereiro de 2011 20:13
  • Particularmente faço o seguinte:

    Exemplificando com cliente, Crio um lista de clientes carrego a lista com os cliente do banco depois crio um novo objeto do tipo cliente esse sim tem as propriedades nulas ou em branco e adiciono a lista depois carrego a combobox com essa lista!

    nunca tive problema usando isso!

    terça-feira, 8 de fevereiro de 2011 12:24
  • Eu geralmente uso um List<T> para popular o dataSource do comboBox, no seu caso eu faria o seguinte:

    List<Cliente> listaClientes = GetCliente();
    Cliente opcaoSelecionar = New Cliente();
    opcaoSeleciona.Nome = "Selecione";
    listaCliente.Insert(0,opcaoSeleciona);
    
    ComboBox CboCliente = new ComboBox();
    CboClient.DataSource = listaClientes;
    CboClient.DisplayMember = "Nome";
    

     

     


    Paulo Moreira
    terça-feira, 8 de fevereiro de 2011 17:12
  • perfeita sua explicação, so que me gerou outro problema e nao sei como resolver tambem,

    na verdade, nao to sabendo programar msm, hehe.

     

    como ficaria por exemplo o metodo GetCliente(); que vc escreveu la em cima pra mim...?

    como que eu retorno a consulta do banco para o list?

    quarta-feira, 9 de fevereiro de 2011 19:26
  • Segue um simples exemplo de como pode ser feito a extração de um List do BD, neste caso um list de Estado:

     public static List<EstadoModel> ObterLista()
        {
          SqlConnection conn = UtilDB.ObterConexao();
          StringBuilder sql = new StringBuilder();
          sql.Append("SELECT Id, NomeEstado ");
          sql.Append("FROM Estado ");
          SqlCommand cmd = new SqlCommand(sql.ToString(), conn);
          List<EstadoModel> lista = new List<EstadoModel>();
          try
          {
            conn.Open();
            SqlDataReader rdr = cmd.ExecuteReader();
            if (rdr.HasRows)
            {
              while (rdr.Read())
              {
                EstadoModel obj = new EstadoModel();
                obj.Id = Convert.ToInt32(rdr["Id"]);
                obj.NomeEstado = rdr["NomeEstado"].ToString();
                lista.Add(obj);
              }
            }
          }
          catch
          {
          }
          finally
          {
            conn.Close(); 
          }
    
          return lista;
        }
    

    Caso preencha o data source do combo com um list o comando que lhe passei acima funcionará perfeitamente para o que deseja fazer.

    Abraços!


    Estudar, Estudar e Estudar! Não existe caminho curto.
    quinta-feira, 10 de fevereiro de 2011 11:01
  • Muito bom galera, valeu mesmo!

    Problema resolvido...

     

    Obrigada a todos ai que me ajudaram.

    sábado, 12 de fevereiro de 2011 14:26