将多个数据源添加到datagridview vb.net

我有一个DataGridView ,我从多个Excel文件导入数据。 但是每次我导入数据都会覆盖以前的数据。 我如何得到它在数据网格视图中添加下一个excel文件到前面的结尾?

 If DataGridView1.RowCount > 0 Then MyConnection = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\Work\4pc_test1.xlsx;Extended Properties=Excel 12.0;") 'MyConnection = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & fd.FileName & "';Extended Properties=Excel 8.0;") MyCommand = New System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", MyConnection) MyCommand.TableMappings.Add("Table", "Net-informations.com") DtSet = New System.Data.DataSet MyCommand.Fill(DtSet) 'DataGridView1.DataSource = DtSet.Tables(0) Dim tab As DataTable = DtSet.Tables(0) DataGridView1.DataSource = tab MyConnection.Close() Else 'The below connection allows for the opening of .xls files and .xlsx. The one reamed out below doesnt open up .xls files. MyConnection = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\Work\4pc_test1.xlsx;Extended Properties=Excel 12.0;") 'MyConnection = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & fd.FileName & "';Extended Properties=Excel 8.0;") MyCommand = New System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", MyConnection) MyCommand.TableMappings.Add("Table", "Net-informations.com") DtSet = New System.Data.DataSet MyCommand.Fill(DtSet) DataGridView1.DataSource = DtSet.Tables(0) MyConnection.Close() End If 

您可以简单地多次填充单个DataTable ,并以这种方式将行添加到DataTable 。 例如:

 Try Dim table = New DataTable() Dim connection = "Provider=Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=D:\excel1.xlsx;" & _ "Extended Properties=Excel 12.0;" Using adapter As New OleDbDataAdapter("select * from [Sheet1$]", connection) adapter.Fill(table) End Using connection = "Provider=Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=D:\excel2.xlsx;" & _ "Extended Properties=Excel 12.0;" Using adapter As New OleDbDataAdapter("select * from [Sheet1$]", connection) adapter.Fill(table) End Using Me.DataGridView1.DataSource = table Catch ex As Exception MessageBox.Show(ex.ToString()) End Try 

不同excel文件中的列数可以不同,但​​是如果有同名的列,这些列的数据应该是相同的types。