C sharp - como relleno un DATAGRIDVIEW¿?¿?¿?

 
Vista:

como relleno un DATAGRIDVIEW¿?¿?¿?

Publicado por Lulu (40 intervenciones) el 05/02/2007 11:50:34
Hola , tengo que ir rellenando un datagridview con datos de 4 combobox diferentes, cada combo irá en su columna correspondiente pero no sé muy bien cómo hacer referencia a la fila y columna adecuada. Ya sé que es una tontería pero es que me estoy haciendo un lío... y quería saber si alguien me podría decir un modo rápido y efectivo de hacerlo.

Se supone que hasta que no aprietas un boton ("añadir") no te añade nada al dataGV. CUando pulsas el botópn te coge todos los valores de los combos y los añade en la misma fila pero cada uno en su columna. Gracias una vez más.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:como relleno un DATAGRIDVIEW¿?¿?¿?

Publicado por Pablo Roberto (13 intervenciones) el 05/02/2007 15:55:37
Hola Lulu

la forma mas sencilla d rellenar un DataGridView es usando el objeto GridView del ToolBox q aparece en la parte izquierda de la pantalla.

Tu selecciona GridView y lo arrastras a tu pagina, debes asegurarte q este en la forma diseño (design) y ya q esta alli le das clic en GridView Tasks y seleccionas Choose DataSource, y seleccionas new data source.

t aparece un cuadro d dialogo y como m imagio q tu queres llenar tu dataGV con una tabla, seleccionas Database, en la parte de donde dice Specify an ID for the data source puedes dejar el nombre q aparece x defecto (q es SqlDataSource1), le das ok.

en Choose your Data Connection, en la parte de Which Data connection should your aplication use to connect to the database, si no lo has creado le puedes dar New Connection, en este pedazo, tu seleccionas la conexion hacia tu Base de Datos, eso lo estableces tu, cuando lo haces le das next.

luego t lleva al cuadro Configure the select statement, en how would you like to retrieve data from your database, t aparecen dos opciones

° Especificar columnas d una tabla o vista.
° Especificar un store procedure o una sentencia SQL customizada.

nos inclinaremos x la primera opcion, en Name seleccionas un nombre d una tabla de tu BD, abajo en Columns aparecen todos los campos de la tabla y seleccionas los campos a los q quieres hacer el query, o los seleccionas todos al escoger *, al lado derecho aparecen los botones: Where, Order By y Advanced.

selecciona Advanced, para su cuadro d dialago selecciona Generate INSERT, UPDATE and DELETE statements y la das OK, luego le das next y luego puedes hacer dos cosas.

probar el query (Test Query) q en mi opinion no tiene sentido probarlo, asi q mejor le das Finish. =)

ya puedes probar tu sitio, y ya t aparece la tabla con los campos q tu elegiste, y t da la opcion d INSERTAR, MODIFICAR Y BORRAR datos de tus tablas.

Espero haberto podido ayudar y si tienes alguna duda no dudes en escribirme. =)

Un saludo. =)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como relleno un DATAGRIDVIEW¿?¿?¿?

Publicado por Lulu (40 intervenciones) el 05/02/2007 17:21:09
Gracias!! la información es muy útil, pero me temo que tengo un problema: yo nunca voy a conocer la tabla hasta el momento de ejecutar, ya que es una tabla temporal que se crea y se destruye, a demás no siempre es igual, dependerá de los ficheros que utilice en cada ocasión, por eso la recorro en plena ejecución. Y sus campos normalmente los guardo en un arraylist.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como relleno un DATAGRIDVIEW¿?¿?¿?

Publicado por Pablo Roberto (13 intervenciones) el 06/02/2007 16:32:38
Hola, no habia considerado q tu tabla es temporal, seria bueno entonces si en el tutorial on-line d microsoft sql 2005 pudieras encontrar algun ejemplo de lo q necesitas. =)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

SOLUCION RELLENAR UN DATAGRIDVIEW

Publicado por Lulu (40 intervenciones) el 07/02/2007 11:17:44
Ok, no te preocupes, muchas gracias. Al final lo hice de la siguiente manera:

/// <summary>carga el datagridview con los nuevos registros del arraylist</summary>
/// <param name="Datos"></param>
public void Cargar_Registros(IList Datos)
{
//actualización del datagridview
dGVCamposCompletos.AutoGenerateColumns = false;
//fgenerarsortficheros.dGVCamposCompletos.DataSource = Datos;
//si le cargamos los datos directamente enb cada celda no podremos asignarle un Datasource

//limpiamos el Datagridview
dGVCamposCompletos.Rows.Clear();
dGVCamposCompletos.Columns.Clear();

dGVCamposCompletos.VirtualMode = false;

//columna del checkbox
dGVCamposCompletos.Columns.Insert(0, new DataGridViewCheckBoxColumn());
dGVCamposCompletos.Columns[0].Resizable = DataGridViewTriState.False;
dGVCamposCompletos.Columns[0].Frozen = true;
dGVCamposCompletos.Columns[0].DividerWidth = 1;
dGVCamposCompletos.Columns[0].Width = 20;


//columnas restantes

//nombre del campo
dGVCamposCompletos.Columns.Insert(1,new DataGridViewTextBoxColumn());
dGVCamposCompletos.Columns[1].Resizable = DataGridViewTriState.False;
dGVCamposCompletos.Columns[1].Frozen = true;
dGVCamposCompletos.Columns[1].DataPropertyName = "nombre";
dGVCamposCompletos.Columns[1].Name = "nombre";
dGVCamposCompletos.Columns[1].Width = 200;

//inicio
dGVCamposCompletos.Columns.Insert(2, new DataGridViewTextBoxColumn());
dGVCamposCompletos.Columns[2].Resizable = DataGridViewTriState.False;
dGVCamposCompletos.Columns[2].Frozen = true;
dGVCamposCompletos.Columns[2].Visible = false;
dGVCamposCompletos.Columns[2].DataPropertyName = "inicio";
dGVCamposCompletos.Columns[2].Name = "inicio";
dGVCamposCompletos.Columns[2].Width = 60;

//longitud
dGVCamposCompletos.Columns.Insert(3, new DataGridViewTextBoxColumn());
dGVCamposCompletos.Columns[3].Resizable = DataGridViewTriState.False;
dGVCamposCompletos.Columns[3].Frozen = true;
dGVCamposCompletos.Columns[3].DataPropertyName = "longitud";
dGVCamposCompletos.Columns[3].Name = "longitud";
dGVCamposCompletos.Columns[3].Width = 60;

//tipo
dGVCamposCompletos.Columns.Insert(4, new DataGridViewTextBoxColumn());
dGVCamposCompletos.Columns[4].Resizable = DataGridViewTriState.False;
dGVCamposCompletos.Columns[4].Frozen = true;
dGVCamposCompletos.Columns[4].DataPropertyName = "tipo";
dGVCamposCompletos.Columns[4].Name = "tipo";
dGVCamposCompletos.Columns[4].Width = 60;

//ordenación
dGVCamposCompletos.Columns.Insert(5, new DataGridViewTextBoxColumn());
dGVCamposCompletos.Columns[5].Resizable = DataGridViewTriState.False;
dGVCamposCompletos.Columns[5].Frozen = true;
dGVCamposCompletos.Columns[5].DataPropertyName = "orden";
dGVCamposCompletos.Columns[5].Name = "orden";
dGVCamposCompletos.Columns[5].Width = 80;

int contI;

for (contI = 0; contI < Datos.Count; contI++)
{
//añadimos una nueva fila en blanco
bool checkbox = false;
Object[] Temporal ={ checkbox,
((CReg_Orden)Datos[contI]).GetNombre(),
((CReg_Orden)Datos[contI]).GetInicio(),
((CReg_Orden)Datos[contI]).GetLongitud().ToString(),
((CReg_Orden)Datos[contI]).GetTipo(),
((CReg_Orden)Datos[contI]).GetOrden()};

//rellenamos los datos de la fila
dGVCamposCompletos.Rows.Add(Temporal);
dGVCamposCompletos.Rows[contI].Resizable = DataGridViewTriState.False;
}
dGVCamposCompletos.AllowUserToResizeColumns = false;

}//fin cargar_registros()

//**********************************************************

En donde Datos es un arraylist que contiene elementos del tipo cReg_Orden.

El campo que le añadimos "checkbox" es booleano porque en esa primera columna que hemos creado es un DatagridviewCheckboxColumn(), una columna de checkbox que solo puede llevar valores true/false.

El tipo cReg_Orden es de la siguiente clase:

public class CReg_Orden
{
private string NombreOrd;//nombre del campo
private string InicioOrd;//posición de inicio del campo
private int LongOrd; //longitud del campo
private string TipoOrd;//tipo de dato del campo
private string OrdenOrd; //tipo de ordenación del campo

//constructor del objeto
public CReg_Orden()
{
NombreOrd = "";
InicioOrd = "0000";
LongOrd = 0;
TipoOrd = "CH";
OrdenOrd = "A";
}//fin constructor

//*************************************************************

//inicializamos los atributos de la clase
public CReg_Orden(string nombre2, string inicio2, int longi2, string tipo2, string orden2)
{
NombreOrd = nombre2;
InicioOrd = inicio2;
LongOrd = longi2;
TipoOrd = tipo2;
OrdenOrd = orden2;
}//fin

//***************************************************************
//Setters

public void SetInicio(string inicio2) { InicioOrd = inicio2; }
public void SetLongitud(int longitud2) { LongOrd = longitud2; }
public void SetNombre(string nombre2) { NombreOrd = nombre2; }
public void SetTipo(string tipo2) { TipoOrd = tipo2; }
public void SetOrden(string orden2) { OrdenOrd = orden2; }

//***************************************************************
//Getters

public string GetInicio() { return InicioOrd; }
public int GetLongitud() { return LongOrd; }
public string GetNombre() { return NombreOrd; }
public string GetTipo() { return TipoOrd; }
public string GetOrden() { return OrdenOrd; }
}

espero haber servido de ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar