• Viernes 8 de Noviembre de 2024, 18:53

Autor Tema:  Refrescar Datagrid  (Leído 4676 veces)

Vortice

  • Miembro MUY activo
  • ***
  • Mensajes: 135
    • Ver Perfil
Refrescar Datagrid
« en: Martes 11 de Septiembre de 2007, 17:19 »
0
Camaradas hola espero esten bien, mi problema es simple creo yo, necesito refrescar la Grilla (datagrid) con un boton "refrescar Grilla" y al presionar este actualize mi grilla con respecto de los datos q he ingresado, eliminado o actualizado, depediendo esto del usuario.....gracias de antemano.
Solo el Bueno muere joven...

Scherzo

  • Miembro activo
  • **
  • Mensajes: 64
    • Ver Perfil
    • http://www.mma-spain.com
Re: Refrescar Datagrid
« Respuesta #1 en: Martes 11 de Septiembre de 2007, 17:44 »
0
Te contesto basándome en la teoría, ya que no estoy familiarizado con los DataGrids, no suelo usarlos. Pero en principio el DataGrid se apoya en un DataSet o un DataTable, y éstos, por ser objetos que no están conectados al servidor de BBDD no se enteran de los cambios que haya en ella salvo que los actualices previamente deforma explícita. Por lo que entiendo que para que esos cambios se vean reflejados en tu DataGrid tendrías que actualizar primero el DataSet. Para ello bastaría con lanzar un DataAdapter.Fill(DataSet) que actualizaría los cambios en el DataSet.

Este DataSet, al estar vinculado al DataGrid, haría que se vieran reflejados en dicho DataGrid tan pronto estuvieran disponibles (o a lo mejor has de llamar al método .Refresh del DataGrid).

Lógicamente, donde pongo DataAdapter y DataSet en la instrucción Fill() has de poner los nombres de los objetos instanciados que estés usando.

Insisto en que me baso en la teoría, no lo he probado, por lo que no te puedo asegurar que funcione, pero no pierdes nada por probar... :)

Saludos

stla

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Refrescar Datagrid
« Respuesta #2 en: Lunes 24 de Septiembre de 2007, 17:37 »
0
Hola, te escribo el código que uso yo a ver si te vale de ayuda

Public Sub LlenarDataGrid()
                'inicializamos valores..  
   'vamos a realizar la consulta a la base de datos para obtener los datos que queremos mostrar en eldatagrid
   'previamente necesitamos que haya conexion a la base de datos y que esté abierta
   
        comando = New MySqlCommand("SELECT campo1,campo2 FROM tabla WHERE <condicion>", nombreConexion)
   comando.ExecuteNonQuery()
   'le asignamos un lector al comando
        lector = comando.ExecuteReader()

        'creamos un objeto tabla...
        Dim Tabla As New DataTable

        'cremos las columnas del dataTable
        Tabla.Columns.Add(New DataColumn("columna1"))
        Tabla.Columns.Add(New DataColumn("columna1"))
   'así con todas las columnas

        'mientras haya datos...
        While lector.Read

            'creamos cada fila del dataTable llenándolas con datos...
            Dim fila As DataRow

            'creamos una fila...
            fila = Tabla.NewRow()

            'for i=0 to numero de campos que devuelva la consulta menos 1, en este caso son 2

            For i = 0 To 1
                  fila(i) = lector(i).ToString
            Next

            'agregamos la fila a la coleccion de filas del dataTable
            Tabla.Rows.Add(fila)
        End While
     
        'enlazamos nuestra datagrid con el dataTable lleno de datos....
        Me.DataGridView1.DataSource = Tabla

        'cerramos el lector al terminar
        lector.Close()
    End Sub

bastaría con llamar a este procedimiento cada vez que necesites refrescar el dataGrid,por supuesto también podrías pasarle la consulta como parámetro al procedimiento...