将多个数据源添加到datagridview vb.net [英] Adding multiple datasources to a datagridview vb.net

查看:210
本文介绍了将多个数据源添加到datagridview vb.net的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have a DataGridView that I am importing data into from multiple excel files. But every time I import the data it overwrites the previous data. How do I get it to add the next excel file to the end of the previous in the data grid view?

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 中。例如:

You can simply fill a single DataTable multiple times and rows will be added to the DataTable this way. For example:

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文件中的列数可以不同,但​​是如果有相同名称的列,这些列的数据应该是相同的类型。

Number of columns in different excel files can be different, but if there is columns with the same name, the data of those columns should be of the same type.

这篇关于将多个数据源添加到datagridview vb.net的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆