HOla me gusaria saber si se puede enlazar un datareader con un datagrid, para ke cargue los datos el datagrid.
gracias
| ||||
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 |
| |||
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 |
| ||||
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.
__________________ |
| ||||
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 |
| |||
Respuesta: Se puede usar datareader con un datagrid Cita: 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:
Iniciado por Deulis 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 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 |