Funcion para pasar los datos de un DataGridView a un Datatable en Visual Basic .NET

4 comentarios
Aqui os dejo una funcion que permite pasar los datos de un DataGridView a un Datatable pasado por parametro.

Shared Sub ExportarDataGridViewADataTable(ByVal miDataGrid As DataGridView, ByRef Tabla As DataTable)
        Try
            Dim filaNueva As System.Data.DataRow
            Dim numCols As Integer

            numCols = miDataGrid.ColumnCount

            ' Rellenamos los valores del DataTable nuevo con los valores de las celdas del DataGridView
            For Each filaDatos As DataGridViewRow In miDataGrid.Rows
                filaNueva = Tabla.NewRow()
                For i As Integer = 0 To numCols - 1
                    filaNueva(i) = filaDatos.Cells(i).Value
                Next
                Tabla.Rows.Add(filaNueva)
            Next

        Catch ex As Exception
            Tabla = New DataTable
        Finally
            miDataGrid = Nothing
        End Try

    End Sub


Espero que os sirva de ayuda


4 comentarios:

donde se pone el codigo xml??

25 de octubre de 2012, 7:54 comment-delete

Que codigo xml? Se mas explicito

25 de octubre de 2012, 8:06 comment-delete

Muy buen aporte

Anónimo
4 de abril de 2013, 9:00 comment-delete

No funciona del todo.
Te faltó asignar las columnas existentes en el datagridview a la tabla.

Este es el código resultante después de haber hecho los ajustes correspondientes:
public static System.Data.DataTable DataGridViewADataTable(System.Windows.Forms.DataGridView DataGrid)
{
System.Data.DataTable Tabla = new System.Data.DataTable();
try
{
System.Data.DataRow filaNueva = null;
int numCols = 0;

numCols =DataGrid.ColumnCount;
foreach (System.Windows.Forms.DataGridViewColumn C in DataGrid.Columns)
{
Tabla.Columns.Add(C.DataPropertyName);
}
foreach (System.Windows.Forms.DataGridViewRow filaDatos in DataGrid.Rows)
{
filaNueva = Tabla.NewRow();
for (int i = 0; i <= numCols - 1; i++)
{
filaNueva[i] = filaDatos.Cells[i].Value;
}
Tabla.Rows.Add(filaNueva);
}
return Tabla;
}
catch
{
return new System.Data.DataTable();
}

}

Gracias por la idea.
Hasta luego.

Anónimo
18 de junio de 2013, 9:20 comment-delete
Publicar un comentario

Related Posts Plugin for WordPress, Blogger...
Copyright 2011 INFORMATICUCHO.
Blogger Template by Noct.