CLR: .Net / Mono / Boo / Otros CLR > C#
asignar a un Textbox datos de comboBox
(1/1)
lugarda:
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# --- public DataTable listarConceptos() { DataTable dt = new DataTable(); OracleDataAdapter adaptador = new OracleDataAdapter(); try { using (OracleCommand consulta = conexionOracle.CreateCommand()) { consulta.CommandText = (@"select codigo,descripcion,cuenta,fecha from tbsubconceptos where nconcepto='30' "); adaptador.SelectCommand = consulta; adaptador.Fill(dt); } } catch (Exception ex) { throw ex; } return dt; }
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# --- private void cmbConceptos_Click(object sender, EventArgs e) { cmbConceptos.DataSource = new BasicoNG().listarConceptos(conexionOracle); cmbConceptos.ValueMember = "codigo"; cmbConceptos.DisplayMember = "descripcion"; } 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:
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# --- public class Subconceptos { private string cuenta; private DateTime fecha; public string Cuenta { get { return cuenta; } set { cuenta = value; } } public DateTime Fecha { get { return fecha; } set { fecha= value; } }}
2. Cree un método que retorna un objeto tipo Subconcepto
--- Código: C# --- public Subconceptos listarDatoConcepto(string codigo) { Subconceptos concepto = new Subconceptos(); try { using (OracleCommand consulta = conexionOracle.CreateCommand()) { consulta.CommandText = string.Format(@"select cuenta,fecha from tbsubconceptos where nconcepto='30' and nsubconcepto=:codigo "); consulta.Parameters.Add(new OracleParameter(":codigo", OracleType.Number)).Value = Int32.Parse(codigo); using (OracleDataReader cursor = consulta.ExecuteReader()) { while (cursor.Read()) { concepto.cuenta= cursor.GetString(0); concepto.fecha= cursor.GetDateTime(1); return concepto; } } } } catch (Exception e) { throw e;} return concepto; }
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# ---private void cmbConceptos_SelectionChangeCommitted(object sender, EventArgs e) { try { tbCodigo.Text = cmbConceptos.SelectedValue.ToString(); Subconceptos p = new listarDatoConcepto(tipo); tbcuenta.Text = p.Cuenta; } catch (Exception ed) { MessageBox.Show(ed.Message + "" + "n" + ed.Source, "mensaje", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
bueno espero que se de utilidad.
Y si agluno tiene una mejor idea , seri asuoper compartirla.
hasta la proximan.
Navegación
Ir a la versión completa