sql - 将excel导入sql db表

标签 sql vb.net excel ado.net

我正在尝试将数据从 Excel 电子表格写入 SQL 数据库。我已经能够连接到 Excel 电子表格并读取数据,但我无法将数据插入到 SQL DB 表中。

当前代码如下

任何帮助最受赞赏。

    Dim plmExcelCon As System.Data.OleDb.OleDbConnection
    Dim ldExcelDS As System.Data.DataSet
    Dim cmdLoadExcel As System.Data.OleDb.OleDbDataAdapter
    Dim PrmPathExcelFile As String
    PrmPathExcelFile = txtImportFileLocation.Text.ToString

    plmExcelCon = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + PrmPathExcelFile + ";Extended Properties=Excel 12.0;")
    cmdLoadExcel = New System.Data.OleDb.OleDbDataAdapter("select * from [" + txtImportSheetName.Text + "$]", plmExcelCon)
    ldExcelDS = New System.Data.DataSet
    cmdLoadExcel.Fill(ldExcelDS)

    dgvImportData.DataSource = ldExcelDS.Tables(0)

    plmExcelCon.Close()


   cmdINSERT.Parameters("@[SQL COLUMN NAME]").Value = [Not sure how to set value from datagrid view]


  cnLD.Open()
  cmdINSERT.ExecuteNonQuery()
  cnLD.Close()

最佳答案

我的任务是从 Excel 中提取一些数据,对其进行修改,并将其放入 SQL 数据库中。下面是类似于我所做的事情:

    Dim MyConnection As New System.Data.OleDb.OleDbConnection

    Dim MyCommand As System.Data.OleDb.OleDbDataAdapter
    MyConnection = New System.Data.OleDb.OleDbConnection ("provider=Microsoft.Jet.OLEDB.4.0; data source='" + fileLocation + " ';Extended Properties=Excel 8.0;")

    ' Select the data from the 'Samples' sheet of the workbook.
    MyCommand = New System.Data.OleDb.OleDbDataAdapter("select * from [Samples$]", MyConnection)
    Dim ds as new DataSet
    MyCommand.Fill(ds)

    MyConnection.Close()

这几乎是你已经拥有的,你说这可以从 Excel 中提取数据。从那里我将遍历 DataSet 并以这种方式将其添加到数据库中:
    Dim dt as DataTable = ds.Tables(0)
    For each row as DataRow in dt.Rows
        dim value1 as String = row("columnName")
        dim value2 as Double = row("columnName2")

        'Write a function that connects to the database with your parameters
        insertIntoDatabase(value1, value2)
    Next

希望这是您需要的桥梁(访问 DataTable 的数据)。祝你好运!

关于sql - 将excel导入sql db表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1851076/

相关文章:

c# - 这个的正则表达式是什么?

arrays - 将 VBA 数组元素输出到 Excel 中的一个单元格

mySQL 返回错误的计数结果

mysql - SQL 2 列主键,但想要搜索其中一列,我应该将其设为单独的键吗?

Mysql全文索引对完全匹配和部分匹配给出相同的分数,为什么?

c# - 对于用户控件,如何设置项模板项到用户属性的绑定(bind)?

c# - 为什么匿名Action在C#中可以一行调用,而VB却不行?

c# - 如何使用 NPOI 在 C# 中使用列名获取 excel 单元格值

excel - 重命名excel工作表而不丢失公式引用

c# - 如何获得 firebird 数据库的独占锁以执行模式更改?