domingo, 13 de octubre de 2013

1.4. Uso de Datos de SqlServer en Controles C#

Llenar controles ListBox, ComboBox con Datos de Una Tabla de SqlServer

El manejo de ListBox y ComboBox es similar en su uso, aquí usaremos un ComboBox, pero el código es similar si se usa un control ListBox.

Antes de trabajar el código debemos tener creada la clase CProducto, y la clase CDatos que hicimos en la anterior pagina, estas clases son necesarias puesto que tienen la conexión con SqlServer y las operaciones de consultas. El objetivo no es hacer el código desde el inicio, ese código ya lo tenemos desarrollado y nos permitirá centrarnos en el uso de los controles.


Forma 1. Llenar un ComboBox con los datos de un DataTable

             /*Llenar el DataTable*/
            DataTable resultado = oProducto.Listar();
            /*Hace que el DataTable se enlace con el ComboBox*/
            cboDatos.DataSource = resultado;
            /*Indicando que columna del DataTable obtiene el valor del Combo*/
            cboDatos.ValueMember = "idProducto";
            /*Indicando que columna del DataTable se muestra en el Combo*/
            cboDatos.DisplayMember = "nombre";

Obtener los valores del ComboBox

             /*Obtiene el dato seleccionado del ComboBox*/
            string elemento = cboDatos.SelectedValue.ToString();
            /*Mostrando el Valor del elemento*/
            MessageBox.Show(elemento);



Forma 2. Llenar un ComboBox con los datos de un DataTable

             /*Llenar el DataTable*/
            DataTable resultado = oProducto.Listar();
            /*Hace que el DataTable se enlace con el ComboBox*/
            cboDatos.DataSource = resultado;
            /*Indicando que columna del DataTable obtiene el valor del Combo*/
            cboDatos.ValueMember = resultado.Columns[0].ColumnName;
            /*Indicando que columna del DataTable se muestra en el Combo*/
            cboDatos.DisplayMember = resultado.Columns[1].ColumnName;
Nota Importante:
  • Cuando usamos Columns[0].ColumnName nos estamos refiriendo al nombre que tiene la columna del DataTable, de esta forma podemos evitarnos estar verificando que nombre le pusimos a la columna y solo nos centraríamos en el orden.
  • Existen varias formas de llenar un ComboBox con datos de un DataTable, aquí te he querido mostrar las mas sencillas e importante, pues el objetivo no es hacer código complicado. 


Llenar controles DataGridView con Datos de Una Tabla de SqlServer

Los controles DataGridView son muy usados para mostrar colecciones de datos, por ejemplo los resultados de una búsqueda, el listado de datos y/o similares.

Llenar un DataGridView con Datos de un DataTable

             /*Creando un DataTable y llenandole datos*/
            DataTable resultado = oProducto.Listar();
            /*Asignando los datos al DataGridView*/
            dgvDatos.DataSource = resultado;
Nota. Todas las columnas tienen el mismo ancho y los nombres de las cabeceras tienen los mismos valores del las columnas del DataTable. Por ello esto debes cambiarlo lego según tus necesidades.

Elementos Necesarios para Mejorar e DataGridView

Cambiando Tamaño a las Columnas de un DataGridView

             /*Colocando el tamaño de las columnas de un DataGridView*/
            dgvDatos.Columns[0].Width = 70;
            dgvDatos.Columns[1].Width = 250;
            dgvDatos.Columns[3].Width = 70;

Cambiando Textos de las columnas en la cabecera del DataGridView

             /*Cambiando las cabeceras del DataGridView as la columns 0, 1, 3, 4*/
            dgvDatos.Columns[0].HeaderText = "Código del Producto";
            dgvDatos.Columns[1].HeaderText = "Nombre del Producto";
            dgvDatos.Columns[3].HeaderText = "Precio Unitario";
            dgvDatos.Columns[4].HeaderText = "Fecha/Fabricación";

Ocultando Columna de un DataGridView

             /*Ocultando la columna 5 del DataGridView*/
            dgvDatos.Columns[5].Visible = false;

oProducto.Listar();

No olvides que este objeto resuelve el acceso a los datos de SqlServer y nos simplifican el trabajo, su código lo puedes encontrar en la siguiente dirección:










1 comentario:

  1. Si fueran tan amables me envían el proyecto entero ya hecho! no sé si sea posible??? y la 2da. pregunta es si lo que está página en qué parte del proyecto o de la programación se hubican??? gracias!!!

    ResponderEliminar