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

Se puede usar datareader con un datagrid

Estas en el tema de Se puede usar datareader con un datagrid en el foro de .NET en Foros del Web. HOla me gusaria saber si se puede enlazar un datareader con un datagrid, para ke cargue los datos el datagrid. gracias...
  #1 (permalink)  
Antiguo 29/06/2005, 02:05
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años, 7 meses
Puntos: 1
Se puede usar datareader con un datagrid

HOla me gusaria saber si se puede enlazar un datareader con un datagrid, para ke cargue los datos el datagrid.

gracias
  #2 (permalink)  
Antiguo 29/06/2005, 08:35
Avatar de splinter  
Fecha de Ingreso: junio-2004
Ubicación: Misantla,Ver.Mexico
Mensajes: 181
Antigüedad: 20 años, 5 meses
Puntos: 0
Usando un SP y un reader
...
...
oComando.Parameters.Add("@opc", SqlDbType.Int) : oComando.Parameters.Item("@opc").Value = opc
oComando.Parameters.Add("@param1", SqlDbType.Char, 12) : oComando.Parameters.Item("@param1").Value = Param1.ToString
oComando.Parameters.Add("@param2", SqlDbType.Char, 12) : oComando.Parameters.Item("@param2").Value = Param2.ToString
MyDR = oComando.ExecuteReader
ElGrid.DataSource = MyDR
ElGrid.DataBind() 'LLENAR EL GRID
  #3 (permalink)  
Antiguo 29/06/2005, 09:06
 
Fecha de Ingreso: octubre-2004
Mensajes: 878
Antigüedad: 20 años, 1 mes
Puntos: 1
sp? que es eso?
  #4 (permalink)  
Antiguo 29/06/2005, 09:14
Avatar de splinter  
Fecha de Ingreso: junio-2004
Ubicación: Misantla,Ver.Mexico
Mensajes: 181
Antigüedad: 20 años, 5 meses
Puntos: 0
Es un ejemplo usando un STORE PROCEDURE , perdon si no fui especifico.

Bueno, tambien lo puedes implementar directamente desde codigo sin usar el proc.almacenado, pero en lo particular tiene mas ventajas usar los proc.almacenados (acceso a datos) que hacerlo todo en el codigo.

saludos
  #5 (permalink)  
Antiguo 29/06/2005, 13:53
 
Fecha de Ingreso: junio-2005
Mensajes: 6
Antigüedad: 19 años, 4 meses
Puntos: 1
De acuerdo

Hola

Aqui te pongo un ejemplo de como hacerlo, parto de que en la página exista un datagrid llamado grid y el ejemplo te lo puse en VB con conexión a SQL.


'Crear una conexión y abrirla
Dim myConnection As New SqlClient.SqlConnection("tu cadena de conexión")
myConnection.Open()

' Crear el comando
Dim myCommand As New SqlClient.SqlCommand("Select * from CUSTOMERS", myConnection)

' Crear el DataReader
Dim myReader As SqlClient.SqlDataReader

' Con el método ExecuteReader() del comando se traen los datos
myReader = myCommand.ExecuteReader()

' Asignarle al grid el DataReader
grid.DataSource = myReader


Me.DataBind()


' Cerrar la conexión (utomáticamente cerrará el DataReader)
myConnection.Close()

espero te sea útil.
Saludos
Deulis
  #6 (permalink)  
Antiguo 29/06/2005, 17:04
Avatar de Rony J.  
Fecha de Ingreso: noviembre-2004
Ubicación: Maracay - Vzla
Mensajes: 223
Antigüedad: 20 años
Puntos: 0
Pues asi de sencillo como te han dicho,
DataGrid.DataSource = DataReader
DataGrid.DataBind()

Yo lo he probado en web forms y funciona perfecto pero una vez, probando no recuerdo que jeje, lo intente pero en una aplicacion windows y esto me dio error..

Es que no se puede hacer en win forms? o seria que me falto algo? El codigo es igual pero sin el DataBind, aunque apenas al asignar el datasource al datagrid me salia un error, no recuerdo exactamente que pero se que decia algo de que el origen de datos del datagrid debia implementar ilistcolecttion..

Alquien lo ha hecho en aplicaciones windows? Saludos y gracias.
__________________
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas. Albert Einstein
  #7 (permalink)  
Antiguo 30/06/2005, 12:12
 
Fecha de Ingreso: junio-2005
Mensajes: 6
Antigüedad: 19 años, 4 meses
Puntos: 1
Además se obtiene el mismo error en web si el grid se pagina. No he revizado porque.
  #8 (permalink)  
Antiguo 30/06/2005, 14:18
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 10 meses
Puntos: 7
Lo primero, el DataBinding en aplicaciones de escritorio exige que haya una copia en memoria de los datos, por otro lado el DataSource tiene que implementar la interfaz IList , según lo dicho anteriormente, no es posible asignar el DataReader como DataSource de un control (el DataReader implementa la Interfaz IEnumerable)

Ahora, sobre la paginación de un DataGrid (web), éste necesita todos los datos que se van a mostrar para calcular las el número de páginas y esas cosas, si deseas más control sobre la paginación, puedes implementar una paginación personalizada...

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #9 (permalink)  
Antiguo 21/07/2008, 22:29
 
Fecha de Ingreso: noviembre-2006
Mensajes: 13
Antigüedad: 18 años
Puntos: 0
Respuesta: Se puede usar datareader con un datagrid

Gracias por abrir este tema me has salvado la vida sino no aprobaba el curso xD !!!!!!!!!!!!!!! mil gracias!!!!
  #10 (permalink)  
Antiguo 05/10/2009, 10:27
 
Fecha de Ingreso: agosto-2009
Mensajes: 4
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Se puede usar datareader con un datagrid

Cita:
Iniciado por Deulis Ver Mensaje
Hola

Aqui te pongo un ejemplo de como hacerlo, parto de que en la página exista un datagrid llamado grid y el ejemplo te lo puse en VB con conexión a SQL.


'Crear una conexión y abrirla
Dim myConnection As New SqlClient.SqlConnection("tu cadena de conexión")
myConnection.Open()

' Crear el comando
Dim myCommand As New SqlClient.SqlCommand("Select * from CUSTOMERS", myConnection)

' Crear el DataReader
Dim myReader As SqlClient.SqlDataReader

' Con el método ExecuteReader() del comando se traen los datos
myReader = myCommand.ExecuteReader()

' Asignarle al grid el DataReader
grid.DataSource = myReader


Me.DataBind()


' Cerrar la conexión (utomáticamente cerrará el DataReader)
myConnection.Close()

espero te sea útil.
Saludos
Deulis
Hola!! A mi esa solución no me funcionó, pues utilizo VB.NET (no se si la respuesta sea para ese lenguaje). Sia alguien le interesa, lo solucioné de esta manera:

Dim Conexion As New SqlClient.SqlConnection("tu cadena de conexión")
Conexion.Open()
Dim Comando As New SqlClient.SqlCommand("CONSULTA", Conexion)

Dim DR As SqlClient.SqlDataReader
DR= Comando.ExecuteReader()

Dim DT as new DataTable

DT.Load (DR)

grid.DataSource = DT
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 13:49.