Foros del Web » Programación para mayores de 30 ;) » .NET »

Llenar 1 Combobox con dos campos de una BD

Estas en el tema de Llenar 1 Combobox con dos campos de una BD en el foro de .NET en Foros del Web. Hola chavos tengo una duda de como llenar una combobox con dos campos(nombre y apellido) de una base de datos en sql ya que el ...
  #1 (permalink)  
Antiguo 12/01/2010, 10:46
Avatar de bigprice  
Fecha de Ingreso: diciembre-2009
Mensajes: 30
Antigüedad: 15 años
Puntos: 0
Información Llenar 1 Combobox con dos campos de una BD

Hola chavos tengo una duda de como llenar una combobox con dos campos(nombre y apellido) de una base de datos en sql ya que el nombre completo lo tengo separado en tres(nombre, apep, apem) pero quiero que en el combobox de mi formulario muestre al usuario los dos primeros datos(nombre & apep) alguien podria ayudarme

  #2 (permalink)  
Antiguo 12/01/2010, 12:38
Avatar de pyroCL  
Fecha de Ingreso: marzo-2009
Ubicación: C#
Mensajes: 261
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Llenar 1 Combobox con dos campos de una BD

Supongo que lo que lees d ela base de datos lo rescatas en un string

Si tu variable string tiene un valor nombre apellido apellido2 lo puedes separar de la siguiente forma.

Código C#:
Ver original
  1. string nombreCompleto = "Juan Pedro Perez Pereira";
  2.  
  3. //se escribira en el textbox el primer nombre y el primer apellido
  4.  
  5. txtNombre.Text = nombreCompleto.Split(' ')[0] + " " + nombreCompleto.Split(' ')[2];
  6.  
  7. //esto muestra en el textbox Juan Perez

Espero te sirva
Saludos!
__________________
La verdadera sabiduría está en reconocer la propia ignorancia.
  #3 (permalink)  
Antiguo 12/01/2010, 19:40
Avatar de bigprice  
Fecha de Ingreso: diciembre-2009
Mensajes: 30
Antigüedad: 15 años
Puntos: 0
Respuesta: Llenar 1 Combobox con dos campos de una BD

Mira la situacion es esta recupero el nombre y primer apellido de mi base de datos (son campos separados en la bd) y esos datos quiero que se visualizen en un combobox, tengo este codigo que los muestra en un datagridview pero quiero ahora que al seleccionar el combo me muestre tanto el nombre como el primer apellido espero que haya sido claro podrian ayudarle

Dim comando As New SqlDataAdapter("select nombre, apep from bd.dbo.tabla", conexion)
Dim ds As New DataSet()
Dim enlaza As New BindingSource
conexion.Open()
comando.Fill(ds)
enlaza.DataSource = ds.Tables(0)
DataGridView1.DataSource = enlaza

endsub
  #4 (permalink)  
Antiguo 12/01/2010, 22:08
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 9 meses
Puntos: 19
Respuesta: Llenar 1 Combobox con dos campos de una BD

Hola, porque no usas un Concat ? o los convertis en strings y los concatenas con "+", hay varias formas, directamente desde la consulta SQL...

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #5 (permalink)  
Antiguo 13/01/2010, 10:12
Avatar de bigprice  
Fecha de Ingreso: diciembre-2009
Mensajes: 30
Antigüedad: 15 años
Puntos: 0
Respuesta: Llenar 1 Combobox con dos campos de una BD

Lo que quiero es que al cargar el formulario me muestre en el mismo combobox el nombre y el apellido de los datos que tengo en una tabla llamada productores y como se daran cuenta peuden ser mas de uno, sin embargo asi me lo piden y el problemas es que estan separados los dos campos y la verdad no se como hacerle para que se visulisen. la opcion es concatenar pero no se como podrian ayudarme soy nuevo en esto...
mil gracias
  #6 (permalink)  
Antiguo 13/01/2010, 12:41
Avatar de atak  
Fecha de Ingreso: julio-2005
Ubicación: Huancayo
Mensajes: 490
Antigüedad: 19 años, 4 meses
Puntos: 5
De acuerdo Llenar 1 Combobox con dos campos de una BD

Hola,

Elabora un procedimiento almacenado , en la que unirás los tres campos , adicionalmente recuperes el PrimaryKey de la tabla.
Código PHP:
create  procedure  app001

as
begin

select appPaterno
+' '+appMaterno+' '+nombre  as nombrescodigo from tb_productores

end 
Para el Combo:

1.- crear una clase Productores
Código PHP:

  
public class productores
    
{

        public 
DataTable  ListarProd()
        {
            
Conexion cnn = new Conexion();
            
SqlConnection cn = new SqlConnection(cnn.LeerCadenaConexion());
            
SqlCommand cmd = new SqlCommand("app001"cn);
            
cmd.Connection cn;
            
cmd.CommandType CommandType.StoredProcedure;
            try
            {
                
SqlDataAdapter da = new SqlDataAdapter(cmd);
                
DataTable tb = new DataTable();
                
da.Fill(tb);
                return(
tb);
            }
            catch (
Exception ex)
            {
                throw new 
Exception(ex.Message);
            }
            
finally
            
{
                
cn.Dispose();
                
cmd.Dispose();
            }
        }

2.- Evento Load del Formulario :

Código PHP:
            productores prod01 = new productores();
            
combo1.DataSource prod01.ListarProd();            
            
combo1.DisplayMember="nombres";
            
combo1.ValueMember "codigo"

3.- Cargarán tus datos al Combo.




Si no lo quieres hacer con SP.
Tambien podrias enviar la cadena SQL de esa manera.

Saludos.
__________________
. .: El mejor Inicio :. .
  #7 (permalink)  
Antiguo 13/01/2010, 12:51
 
Fecha de Ingreso: septiembre-2009
Mensajes: 49
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Llenar 1 Combobox con dos campos de una BD

Cita:
Iniciado por bigprice Ver Mensaje
Mira la situacion es esta recupero el nombre y primer apellido de mi base de datos (son campos separados en la bd) y esos datos quiero que se visualizen en un combobox, tengo este codigo que los muestra en un datagridview pero quiero ahora que al seleccionar el combo me muestre tanto el nombre como el primer apellido espero que haya sido claro podrian ayudarle

Dim comando As New SqlDataAdapter("select ID,nombre, apep from bd.dbo.tabla", conexion)
Dim ds As New DataSet()
Dim enlaza As New BindingSource
conexion.Open()
comando.Fill(ds)
enlaza.DataSource = ds.Tables(0)
DataGridView1.DataSource = enlaza

endsub
Yo creo que cambiando la query te sale mucho más facil:
select nombre, apep, nombre + ' ' + apep as NOMBRECOMPLETO from bd.dbo.tabla

y al combo

combo.datasource=enlaza
combo.DisplayMember="NOMBRECOMPLETO";
combo.ID= "ID";

Etiquetas: bd, campos, combobox, dos, llenar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:29.