• Domingo 22 de Diciembre de 2024, 09:40

Autor Tema:  asignar a un Textbox datos de comboBox  (Leído 3761 veces)

lugarda

  • Miembro activo
  • **
  • Mensajes: 52
  • Nacionalidad: co
    • Ver Perfil
asignar a un Textbox datos de comboBox
« en: Viernes 9 de Julio de 2010, 21:35 »
0
Hola a todos, bueno aqui va un problemita nuevo que tengo:
Hice un Form con un comboBox que tiene como DataSource un DataTable que toma los datos de la base de datos, como lo muestro en el código.
Código: C#
  1.  public DataTable listarConceptos()
  2.         {
  3.             DataTable dt = new DataTable();
  4.             OracleDataAdapter adaptador = new OracleDataAdapter();
  5.             try
  6.             {
  7.                 using (OracleCommand consulta = conexionOracle.CreateCommand())
  8.                 {
  9.                     consulta.CommandText = (@"select codigo,descripcion,cuenta,fecha from tbsubconceptos where nconcepto='30' ");                                  
  10.                     adaptador.SelectCommand = consulta;
  11.                     adaptador.Fill(dt);
  12.                 }
  13.             }
  14.             catch (Exception ex)
  15.             { throw ex;
  16.             }
  17.             return dt;
  18.         }
  19.  

y en el evento Click del comboBox asigne el codigo como ValueMember y descripcion como Display Member. Quiero hacer lo siguiente cuando selecciono algun item del comboBox y es desplegar en dos TextBox (TextBoxCuenta y TextBoxFecha) los datos cuenta y fecha que estan en el DataSource, pero no se como hacerlo.
Código: C#
  1.  private void cmbConceptos_Click(object sender, EventArgs e)
  2.         {
  3.             cmbConceptos.DataSource = new BasicoNG().listarConceptos(conexionOracle);
  4.             cmbConceptos.ValueMember = "codigo";
  5.             cmbConceptos.DisplayMember = "descripcion";            
  6.         }
  7.  
  8.  
Me pueden dara alguna idea de como resolverlo?. Como abrán podido darse cuenta soy super novata en la programación de c# y gracias a ustedes he aprendido muchisimo.

lugarda

  • Miembro activo
  • **
  • Mensajes: 52
  • Nacionalidad: co
    • Ver Perfil
Re: asignar a un Textbox datos de comboBox
« Respuesta #1 en: Martes 13 de Julio de 2010, 20:21 »
0
hola amigos les cuento que ya resolvi  el problema , aunque no se si es la mejor forma pero quiero compartirlo por si le sirve de referencia:
1. Cree una clase Subconceptos.
Código: C#
  1.  
  2. public class Subconceptos
  3.     {
  4.         private string cuenta;
  5.         private DateTime fecha;
  6.  
  7.         public string Cuenta
  8.         {
  9.             get { return cuenta; }
  10.             set { cuenta = value; }
  11.         }
  12.         public DateTime Fecha
  13.         {
  14.             get { return fecha; }
  15.             set { fecha= value; }
  16.         }
  17. }
  18.  
  19.  

2. Cree un método que retorna un objeto tipo Subconcepto

Código: C#
  1.  
  2. public Subconceptos listarDatoConcepto(string codigo)
  3.         {
  4.             Subconceptos concepto = new Subconceptos();
  5.             try
  6.             {
  7.                 using (OracleCommand consulta = conexionOracle.CreateCommand())
  8.                 {
  9.                     consulta.CommandText = string.Format(@"select cuenta,fecha  from tbsubconceptos where nconcepto='30' and nsubconcepto=:codigo ");
  10.                     consulta.Parameters.Add(new OracleParameter(":codigo", OracleType.Number)).Value = Int32.Parse(codigo);
  11.                     using (OracleDataReader cursor = consulta.ExecuteReader())
  12.                     {
  13.                         while (cursor.Read())
  14.                         {
  15.                             concepto.cuenta= cursor.GetString(0);
  16.                             concepto.fecha= cursor.GetDateTime(1);
  17.                             return concepto;
  18.                         }
  19.                     }
  20.                 }
  21.             }
  22.             catch (Exception e) { throw e;}
  23.             return concepto;
  24.         }
  25.  
  26.  

3. en el mevento SelectionChangeCommited del comboBox , inclui el siguiente código. Recuerden que el evento se produce cuando un elemento es elegido de la lista desplegable y la lista desplegable está cerrada
.

Código: C#
  1. private void cmbConceptos_SelectionChangeCommitted(object sender, EventArgs e)
  2.         {
  3.             try
  4.             {
  5.                 tbCodigo.Text = cmbConceptos.SelectedValue.ToString();
  6.                 Subconceptos p = new  listarDatoConcepto(tipo);
  7.                 tbcuenta.Text = p.Cuenta;
  8.                 }
  9.             catch (Exception ed)
  10.             {
  11.                 MessageBox.Show(ed.Message + "" + "n" + ed.Source, "mensaje", MessageBoxButtons.OK, MessageBoxIcon.Error);
  12.             }
  13.         }
  14.  

bueno espero que se de utilidad.
Y si agluno tiene una mejor idea ,  seri asuoper compartirla.

hasta la proximan.