This is a fairly short and sweet function that will take your datagridview and dump it into a dataset. This was created for/using VS 2005.
Edit: I flubbed the rowsetup and had to change itCode:Public Function DatagridviewToDataset(ByVal dgv As DataGridView) As System.Data.DataSet Dim ds As New System.Data.DataSet 'Take the data and structure from the datagridview and return it as a dataset. You can use '"Imports System.Data" declaration at the top of your project/class and remove the system.data 'from the various parts of this function. Try 'Add a new table to the dataset ds.Tables.Add("Main") 'Add the columns Dim col As System.Data.DataColumn 'For each colum in the datagridveiw add a new column to your table For Each dgvCol As DataGridViewColumn In dgv.Columns col = New System.Data.DataColumn(dgvCol.Name) ds.Tables("Main").Columns.Add(col) Next 'Add the rows from the datagridview Dim row As System.Data.DataRow Dim colcount As Integer = dgv.Columns.Count - 1 For i As Integer = 0 To dgv.Rows.Count - 1 row = ds.Tables("Main").Rows.Add For Each column As DataGridViewColumn In dgv.Columns row.Item(column.Index) = dgv.Rows.Item(i).Cells(column.Index).Value Next Next Return ds Catch ex As Exception 'Catch any potential errors and display them to the user MessageBox.Show("Error Converting from DataGridView" & ex.InnerException.ToString, _ "Error Converting from DataGridView", MessageBoxButtons.OK, MessageBoxIcon.Error) Return Nothing End Try End Function




Reply With Quote