domingo, 9 de diciembre de 2012

COMO LLAMAR DATOS A UN COMBO


Tenemos la tabla Alumnos con los datos siguientes:



















Vamos a jalar los datos de los campos IdAlumno y Nombre en un combobox:
PASO 1:  Realizamos un método llamado  getConexion() utilizado en clase para la conexión, no olvidar cambiar el server, nombre de base de datos,usuario y contraseña.
public SqlConnection getConexion
        {
            try
            {
                string Server = "DASISTEMAS2\\SQLEXPRESS";
                string User = "sa";
                string Password = "10109091";
                SqlConnection con = new SqlConnection("SERVER=" + Server + ";Initial Catalog=SisMatricula;USER ID=" + User + ";PWD=" + Password + ";");
                return con;
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }

        }

PASO 2:  Realizamos un método donde se llamen los datos para el combobox, solo necesitamos los datos de los campos IdAlumno y Nombre, utilizamos en comando sql "select IdAlumno,Nombre from dbo.Alumno", no se olviden de cambiar este query :

        public DataSet TraerAlumnos()
        {
            SqlConnection con = new SqlConnection();
            DataSet ds = new DataSet();
            try
            {
                con = getConexion();
                con.Open();
                SqlCommand cmd = new SqlCommand("select IdAlumno,Nombre from dbo.Alumno", con);
                //cmd.CommandType = CommandType.StoredProcedure; //CASO PROCEDIMIENTOS ALMACENADOS
                cmd.CommandType = CommandType.Text;
                cmd.ExecuteNonQuery();
                SqlDataAdapter ad = new SqlDataAdapter(cmd);
                ad.Fill(ds);
                con.Close();

                return ds;
            }
            catch (Exception e)
            {
                throw new Exception("Error tabla " + e.Message);
            }
        }

PASO 3:  Llamamos los datos del DataSet al Combobox:
private void frmCombo_Load(object sender, EventArgs e)
        {
            comboBox1.DataSource = TraerAlumnos().Tables[0];
        }
Para que llamen los datos es necesario configurar el combobox con los campos llamados, para eso cambiamos las propiedades ValueMember (campo IdAlumno) y Display Member(Nombre)  del combobox:





EJECUCIÓN:




COMO TOMAMOS EL VALOR SELECCIONADO DEL COMBOBOX:
Al pulsar el botón Mostrar código elegido:
comboBox1.SelectedValue.ToString()  Es el valor IdAlumno elegido (valor que se guardará en la otra Tabla), lo mostramos en una ventana de mensajes:
private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show(comboBox1.SelectedValue.ToString());

        }