none
Como recuperar los valores de una columna en DataTable RRS feed

  • Pregunta

  • Hola,

     

    Tengo un proble al intetar insertar los datos de una columna de un DataTable, el objetivo es colocar esta informacion en un ComboBox paro me haci impocible solamente aparase el primer registro de la columna

    La sintaxis que estoy usado es:

    DataTable dtnom = DAL_Nomina.DAL_Nomina.GetFechaProceso(Convert.ToInt16(DateTime.Now.ToString("yyyy")),null,null); //este es un metodo generico diseñado para toda la aplicion

         foreach (DataRow  limite in dtnom.Rows) // estoy usando el foreach para que se mantega el bucle segun la cantidad de registros en la tabla

          {

              ddlCalendario.Items.Add(dtnom.Rows[0]["Num_NUSS"].ToString()); // con esta sentencia estoy intentado insertar los reguistro al ComboBox, pero solo me muestra el primer reguistro del la columna repetido

          } 

     

    si halgien puede ayudare se lo agradeceria

    lunes, 11 de julio de 2011 16:48

Respuestas

  • Hola:

     

    El problema lo tienes en la siguiente linea:

     

    ddlCalendario.Items.Add(dtnom.Rows[0]["Num_NUSS"].ToString()); 

     

    Cambia 

     

       foreach (DataRow  limite in dtnom.Rows) // estoy usando el foreach para que se mantega el bucle segun la cantidad de registros en la tabla

          {

              ddlCalendario.Items.Add(dtnom.Rows[0]["Num_NUSS"].ToString()); // con esta sentencia estoy intentado insertar los reguistro al ComboBox, pero solo me muestra el primer reguistro del la columna repetido

          } 

    por 

     

     

     foreach (DataRow limite in dtnom.Rows) // estoy usando el foreach para que se mantega el bucle segun la cantidad de registros en la tabla
    
       {
    
         ddlCalendario.Items.Add(limite["Num_NUSS"].ToString()); // con esta sentencia estoy intentado insertar los reguistro al ComboBox, pero solo me muestra el primer reguistro del la columna repetido
    
       } 
    


    Te aparecía la primera porque dtnom.Rows[0] siempre apunta a la primera fila.

     

    Saludos.

     

     

     

     


    phurtado
    • Marcado como respuesta Angel011 lunes, 11 de julio de 2011 18:35
    lunes, 11 de julio de 2011 18:01
    Moderador

Todas las respuestas

  • Que tal !

    Yo lleno así unos combobox:

                         oradp.Fill(ds, "dependencia"); //Un dataAdapter llena una dataset
                    cbxAreaSolicitante.DataSource = ds.Tables[0].DefaultView; //Mi combobox
                    cbxAreaSolicitante.ValueMember = "descripcion".ToString(); //Campo de la tabla nombre descripción.

    Código completo:

    try
                {
                    csConn csconn = new csConn();
                    OracleConnection cnn = new OracleConnection(csconn.Orast);
                    cnn.Open();
                    DataSet ds = new DataSet();
                    OracleDataAdapter oradp = new OracleDataAdapter(@"select dependencia, sdependencia, ssdependencia, sssdependencia, descripcion from dependencia where afectable = 'S' order by descripcion asc", csconn.Orast);
                    oradp.Fill(ds, "dependencia");
                    cbxAreaSolicitante.DataSource = ds.Tables[0].DefaultView;
                    cbxAreaSolicitante.ValueMember = "descripcion".ToString();
                    //area = ds.Tables[0].DefaultView.ToString();
                    cnn.Close();
                }
                catch (OracleException ex)
                {
                    MessageBox.Show(@"Error al cargar las áreas:" + ex.Message);
                }
                catch (Exception eex)
                {
                    MessageBox.Show(@"Error:" + eex.Message);
                }

     


    Compartir es aprender To share is to learn 0 1 2 3 4 5 6 7 8 9 0 Nayarit; México
    lunes, 11 de julio de 2011 17:04
  • Hola:

     

    El problema lo tienes en la siguiente linea:

     

    ddlCalendario.Items.Add(dtnom.Rows[0]["Num_NUSS"].ToString()); 

     

    Cambia 

     

       foreach (DataRow  limite in dtnom.Rows) // estoy usando el foreach para que se mantega el bucle segun la cantidad de registros en la tabla

          {

              ddlCalendario.Items.Add(dtnom.Rows[0]["Num_NUSS"].ToString()); // con esta sentencia estoy intentado insertar los reguistro al ComboBox, pero solo me muestra el primer reguistro del la columna repetido

          } 

    por 

     

     

     foreach (DataRow limite in dtnom.Rows) // estoy usando el foreach para que se mantega el bucle segun la cantidad de registros en la tabla
    
       {
    
         ddlCalendario.Items.Add(limite["Num_NUSS"].ToString()); // con esta sentencia estoy intentado insertar los reguistro al ComboBox, pero solo me muestra el primer reguistro del la columna repetido
    
       } 
    


    Te aparecía la primera porque dtnom.Rows[0] siempre apunta a la primera fila.

     

    Saludos.

     

     

     

     


    phurtado
    • Marcado como respuesta Angel011 lunes, 11 de julio de 2011 18:35
    lunes, 11 de julio de 2011 18:01
    Moderador
  • podiras indicar la fila "row" con un ciclo e indicar la columa con el nombre por ejemplo

     

     

    for (int i = 0; i <= DataTable.Rows.Count; i++)

    {

                 string MiFecha = DataTable.Rows[i]["NOmbreColumna"].ToString();

                 miComboBox.Items.Add(MiFecha);

     

    }

     

     

    y de ese modo llenas tu combo

     

    espero que te sirva

    Buena Vibra

    lunes, 11 de julio de 2011 20:52