Dim report As New CrystalReport1 Dim ds As New 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 DataColumn 'For each colum in the datagridveiw add a new column to your table For Each dgvCol As DataGridViewColumn In ProductsDataGridView.Columns col = New DataColumn(dgvCol.Name) ds.Tables("Main").Columns.Add(col) Next 'Add the rows from the datagridview Dim row As DataRow Dim colcount As Integer = ProductsDataGridView.Columns.Count - 1 For i As Integer = 0 To ProductsDataGridView.Rows.Count - 1 row = ds.Tables("Main").Rows.Add For Each column As DataGridViewColumn In ProductsDataGridView.Columns row.Item(column.Index) = ProductsDataGridView.Rows.Item(i).Cells(column.Index).Value Next Next 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) End Try report.SetDataSource(ds.Tables(0)) CrystalReportViewer1.ReportSource = report Form2.Show() Form2.DataGridView1.DataSource = ds.Tables(0) ds.Dispose() ds = Nothing
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)