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

DataGrid

Estas en el tema de DataGrid en el foro de .NET en Foros del Web. Buenas, Alguien sabe como se utiliza un datagrid en visual C#?¿, supongo que para enlazarlo con la BD es: DataGrid.DataSource="CADENA DE CONEXION"; Pero ahora como ...
  #1 (permalink)  
Antiguo 04/08/2005, 04:03
 
Fecha de Ingreso: diciembre-2003
Mensajes: 288
Antigüedad: 20 años, 4 meses
Puntos: 0
DataGrid

Buenas,

Alguien sabe como se utiliza un datagrid en visual C#?¿, supongo que para enlazarlo con la BD es:

DataGrid.DataSource="CADENA DE CONEXION";

Pero ahora como se hace para ir añadiendole filas y columnas?¿
  #2 (permalink)  
Antiguo 04/08/2005, 04:09
 
Fecha de Ingreso: mayo-2004
Mensajes: 85
Antigüedad: 20 años
Puntos: 1
DataGrid.Dataset = MiDataSet;

DataGrid.dataBind();
  #3 (permalink)  
Antiguo 04/08/2005, 04:21
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
A la propiedad DataSource le pasas un objeto que es el que contendrá las lineas del grid. Es en ese objeto donde debes añadir o quitar datos.
Ese objeto puede ser un Datatable, una Dataset... son objeto que llenarás a través de otros objetos que te dan acceso a la base de datos, como los DataAdapters, Commands, ..., y Connection, y es en este último donde le pones tu connectionString, en su propiedad "ConnectionString".

Suerte y un saludo!
__________________
..:: moNTeZIon ::..
  #4 (permalink)  
Antiguo 04/08/2005, 04:33
 
Fecha de Ingreso: diciembre-2003
Mensajes: 288
Antigüedad: 20 años, 4 meses
Puntos: 0
Buenas,
Para conectar he hecho esto:

Conexion con=new Conexion();//clase que me hace la conexion
dgrEC.Visible=true; //datagrid
SqlDataAdapter consulta = new SqlDataAdapter("SELECT IdEC,Descripcion FROM EC",con.ConexionBD());//es para obtener esto dos campos de la tabla EC
DataSet Ds=new DataSet(); //creo el DataSet
consulta.Fill(Ds,"EC");//No se bien que hace

Y ahora como muestro los resultados de la consulta en el datagrid?¿

GRACIAS

Por cierto el datagrid no tiene la propidad AddColumns y AddRows?¿, pq no las veo
Y tampoco lo de datagrid.dataset ni datagrid.Bind, no las puedo escoger como popiedades
tengo incluidos el System.Data.SqlClient y el System.Data
  #5 (permalink)  
Antiguo 04/08/2005, 05:16
 
Fecha de Ingreso: julio-2005
Mensajes: 103
Antigüedad: 18 años, 9 meses
Puntos: 0
Código:
consulta.Fill(Ds,"EC");//No se bien que hace
Lo que hace es rellenar el Dataset con los datos de la ejecución de la consulta SQL.

El DataSet es el que tienes que enlazar con el Grid.
Código:
dgrEC.DataSource=Ds.Tables("EC")
Para añadir filas al Datagrid simplemente se las tienes que ir añadiendo al dataset, y para que los cambios se vean en el Datagrid, volver a enlazar el DataSet al DataSource.

Código:
// Añades la fila
dgrEC.DataSource=Ds.Tables("EC")

Espero que te sirva.
  #6 (permalink)  
Antiguo 04/08/2005, 08:04
 
Fecha de Ingreso: diciembre-2003
Mensajes: 288
Antigüedad: 20 años, 4 meses
Puntos: 0
Buenas,
Al final me hago pesado pero es que me he empeñado con el datagrid y por orgullo ya...
cuando en mi codigo haga:

dgrEC.DataSource=Ds.Tables("EC"), con esto lo q hago es "enlazar" y en el datagrid se veran los resultados de la ejecucion de la consulta SQL o sea del SqlDataAdapter, es eso correcto?¿

Ahora lo de las filas y columnas no lo acabo de ver del todo bien, si yo vuelvo hacer una consulta SQL y esta vez le pongo tres campos, vuelvo a enlazar con el datagrid y me apareceran en vez de dos tres columnas con sus correspondientes datos es eso correcto?¿

Pero ahora el "rizo" si en un datagrid quiero poner el resultado de dos consultas de diferentes tablas, como lo haria?¿
Es decir que cogiese los campos de las tablas Alumnos y Notas y formase un datagrid así:

Alumno Notas//nombre de las columnas
David 9
------ 8
Rebeca 5
------- 5
------- 5

Seria eso posible?¿

GRACIAS
  #7 (permalink)  
Antiguo 04/08/2005, 08:25
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 4 meses
Puntos: 1
Hola lo que quieres si se puede hacer en este enlaze hay post viejo donde se explicaron a alguien como puede hacerlo


http://www.forosdelweb.com/f29/datagrid-con-dos-tablas-vb-net-217841-print/
  #8 (permalink)  
Antiguo 05/08/2005, 00:59
 
Fecha de Ingreso: diciembre-2003
Mensajes: 288
Antigüedad: 20 años, 4 meses
Puntos: 0
buenas de nuevo

Tengo lo echo esto:

Conexion con=new Conexion();
dgrEC.Visible=true;
con.NumeroRegistros(2);
SqlDataAdapter consulta = new SqlDataAdapter("SELECT IdEC,Descripcion FROM EC",con.ConexionBD());
DataSet Ds=new DataSet();
consulta.Fill(Ds,"EC);
dgrEC.DataSource=Ds.Tables("EC");//enlazar Datagrid con DataSet

Y en esa última linea me sale el error: 2C:\Documents and Settings\BC001103\Mis documentos\Visual Studio Projects\WindowsApplication1\frmEC.cs(346): 'System.Data.DataSet.Tables' denota 'propiedad', cuando se esperaba 'método'
"

Alguien sabe pq y como se soluciona?¿
  #9 (permalink)  
Antiguo 05/08/2005, 01:31
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Veo que en el "Fill" olvidaste cerrar la comila doble para el nombre de la tabla...

El resto ya te funciona?
__________________
..:: moNTeZIon ::..
  #10 (permalink)  
Antiguo 05/08/2005, 02:25
 
Fecha de Ingreso: diciembre-2003
Mensajes: 288
Antigüedad: 20 años, 4 meses
Puntos: 0
Si perdona, he puesto las comillas o sea quedaria de esta forma:


private void cmbBorrar_Click(object sender, System.EventArgs e)
{

Conexion con=new Conexion();
dgrEC.Visible=true;
SqlDataAdapter consulta = new SqlDataAdapter("SELECT IdEC,Descripcion FROM EC",con.ConexionBD());
DataSet Ds=new DataSet();
consulta.Fill(Ds,"EC");
dgrEC.DataSource=Ds.Tables("EC");//enlazar Datagrid con DataSet

Y me sigue dando el error:
'System.Data.DataSet.Tables' denota 'propiedad', cuando se esperaba 'método'

A ver yo utilizo :
using System;
using System.Data;
using System.Data.SqlClient;

Debo incluir alguno mas?¿, que quiza sea por eso...

Gracias
  #11 (permalink)  
Antiguo 05/08/2005, 02:53
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Cuando haces el new del dataadapter, como segundo parámetro yo le paso el objeto conexion directamente. No se que le estarás pasando... Pero si eso está bien, aparte de que al final del todo, despues de asignar el Datasource, te falta el "dgrEC.Databind()", no veo nada más...

Por cierto, te recomiendo que hagas un Ds.Clear() antes de hacerle un Fill, para que elimine los datos del dataset y los vuelva a meter..
__________________
..:: moNTeZIon ::..
  #12 (permalink)  
Antiguo 05/08/2005, 03:40
 
Fecha de Ingreso: diciembre-2003
Mensajes: 288
Antigüedad: 20 años, 4 meses
Puntos: 0
No se si ese sera el problema, pero yo como segundo parametro al dataAdapter le paso una funcion "ConectarBD" que es de la clase Conexion.

Quiza sea pq programo con Visual C#, pero el DataBind() no me aparace para seleccionar, en cambio puedo usar el dgrEC.DataBindings(); es lo mismo?¿

GRACIAS
  #13 (permalink)  
Antiguo 05/08/2005, 04:06
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Vamos a aclarar un punto, antes de continuar... Estamos hablando de Windows Forms por casualidad? Porqué si es así, entonces está claro que no te va a aparecer el DataBind...
__________________
..:: moNTeZIon ::..
  #14 (permalink)  
Antiguo 08/08/2005, 00:40
 
Fecha de Ingreso: diciembre-2003
Mensajes: 288
Antigüedad: 20 años, 4 meses
Puntos: 0
Perdona por contestar tarde, moNTeZIon, pero si estamos hablando de windows forms, entonces por dnd van los tiros?¿
  #15 (permalink)  
Antiguo 04/11/2005, 05:08
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Bien, entonces la unica cosa es:

Al new del DataAdapter, como segundo parametro pasale el objeto Con

y luego:

datagrid.datasource = tuDataSet
datagrid.datamember = "nombreTabla" '--> nombre de tabla que le diste al hacer el Fill

Y en pincipio y te quedaria enlazado con el dataset.

Si no te funciona muestra el error que te da a ver... Por cierto, suponemos que ese new conexion() hará lo que tenga que hacer correctamente...

Saludos.
__________________
..:: moNTeZIon ::..

Última edición por moNTeZIon; 04/11/2005 a las 05:15
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 19:11.