Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: |Miguel| en 24 Abril 2012, 13:48 pm



Título: ¿Rellenar datagrid con datatable/datareader?
Publicado por: |Miguel| en 24 Abril 2012, 13:48 pm
Hola, buenas.

Tengo dos dudas: la primera es si es mejor usar un datatable o un datareader para rellenar un datagrid...

Y la segunda es cómo se hace.
Este es mi formulario. pero no encuentro la forma de meter en mi datagrid los datos que he recuperado de la consulta...

Código
  1. Public Class frmAutores
  2.    Sub New()
  3.        InitializeComponent()
  4.        Dim conexion As String = "server=server; user id=user; Password=pass; Initial Catalog=library;"
  5.        Dim cnn As New Data.SqlClient.SqlConnection(conexion)
  6.        Dim cmd As New Data.SqlClient.SqlCommand("select au_id, au_fname, au_lname, city from authors", cnn)
  7.        'Dim dt As New Data.DataTable
  8.        Dim dRead As Data.SqlClient.SqlDataReader = Nothing
  9.        Try
  10.            cnn.Open()
  11.            dRead = cmd.ExecuteReader
  12.            While dRead.Read
  13.  
  14.            End While
  15.        Catch ex As Exception
  16.            MessageBox.Show(ex.Message)
  17.        Finally
  18.            If Not dRead Is Nothing Then
  19.                dRead.Close()
  20.            End If
  21.            cnn.Close()
  22.            cnn.Dispose()
  23.            cmd.Dispose()
  24.        End Try
  25.    End Sub
  26. End Class

Gracias, saludos


Título: Re: ¿Rellenar datagrid con datatable/datareader?
Publicado por: |Miguel| en 24 Abril 2012, 14:00 pm
me respondo. he hecho esto, pero no sé si es muy correcto:
While dRead.Read
                i += 1
                grdAutores.Rows.Add()
                grdAutores.Item("au_id", i).Value = dRead.Item("au_id").ToString()
                grdAutores.Item("au_fname", i).Value = dRead.Item("au_fname").ToString()
                grdAutores.Item("au_lname", i).Value = dRead.Item("au_lname").ToString()
                grdAutores.Item("city", i).Value = dRead.Item("city").ToString()
            End While