none
pegar valor na combox com datasource RRS feed

  • Pergunta

  • Pessoal joia;

    tenho um combobox e não esta vindo o valor

    DBAccess db = new DBAccess(); DataSet ds; StringBuilder str = new StringBuilder(); str.Append("SP_SELECT_CATEGORIAS "); ds = db.ExecuteDataSet(str.ToString()); cb_Categoria.DataSource = ds.Tables[0]; //foreach (DataRow mostar in ds.Tables[0].Rows) //{ // this.cb_Categoria.Items.Add(mostar["Categoria"].ToString()); //}

    Quando eu uso o cb_Categoria.DataSource = ds.Tables[0]; vem o valor normal, o problema é

    que quando abre o form, já vem o primeiro valor, eu gostaria que viesse vazio.

    E quando eu uso o foreach, quando abre o form, a combo vem vazia(é assim que eu quero)

    Mas não pega o valor.

    DisplayMember = Nome e ValueMember = ID

    db.AddParameter(

    "@CATEGORIAID", cb_Categoria.SelectedValue); vem null

    Obrigado 


    • Editado Pedrohgb7 segunda-feira, 21 de maio de 2012 14:56
    segunda-feira, 21 de maio de 2012 14:27

Todas as Respostas

  •  DBAccess db = new DBAccess();
                DataSet ds;
                StringBuilder str = new StringBuilder();
                str.Append("SP_SELECT_CATEGORIAS ");
    
                ds = db.ExecuteDataSet(str.ToString());
                cb_Categoria.DataSource = ds.Tables[0];
    
                DataTable source = (DataTable)this.cb_Categoria.DataSource;
                DataRow row = source.NewRow();
                row[1] = "TODOS";
                source.Rows.InsertAt(row, 0);
                this.cb_Categoria.SelectedIndex = 0;

    OBRIGADO, CONSEGUI
    segunda-feira, 21 de maio de 2012 16:15
  • Faça assim que é mais profissa:

    DBAccess db = new DBAccess();
    DataSet ds;
    StringBuilder str = new StringBuilder();
    str.Append("SP_SELECT_CATEGORIAS ");
    
    ds = db.ExecuteDataSet(str.ToString());
    
    cb_Categoria.DisplayValue = "colunaIDcategoria";//DEFINE QUAL O "VALUE", OU SEJA, O CÓDIGO DA CATEGORIA
    
    cb_Categoria.DisplayMember = "colunaDescricaoCategoria";//DEFINE OQUE APARECE NA TELA
    
    cb_Categoria.DataSource = ds.Tables[0];//DEFINE O DATASOURCE
    
    cb_Categoria.SelectedIndex = -1;//DEIXA SEM NADA SELECIONADO


    Abaixo como ver se tem alguma coisa selecionada no ComboBox e como pegar o código da categoria selecionada

    //AQUI EU MOSTRO COMO PEGAR O VALOR DA COMBOBOX
    if(cb_Categoria.SelectedIndex > -1)//SE TIVER ALGUMA CATEGORIA SELECIONADA
    {   
        var codigo = Int.Parse(cb_Categoria.SelectedValue);//PEGO O CODIGO DA CATEGORIA SELECIONADA
    }


    Se ajudou não esqueça de marcar ;)



    segunda-feira, 21 de maio de 2012 16:46