VB - 连接到本地 SQL 服务器并将数据从 excel 加载到 table

VB - connect to local SQL server and load data to table from excel

我想用 VB 代码连接到我的本地 SQL 服务器,并将数据从我的 Excel 文件加载到 table。这是我到目前为止不完整的代码所得到的。我在 SQL 数据库中创建的 table (me_table) 的字段是 z、ad、ag、retd、to、wg,在 Excel sheet1 中是包含数据的列反映 table 中的字段。谢谢

请指教

Imports System.Data
Imports System.Data.SqlClient

Module Module1
    Dim myconnection As SqlConnection
    Dim mycommand As SqlCommand
    Dim dr As SqlDataReader
    Dim dr1 As SqlDataReader
    Dim ra As Integer

    Sub Main()

        Dim connectionString As String = "Server=DER7D;Database=testDB;User Id=DER7D\Der;Password="
        myconnection = New SqlConnection("server=DER7D;uid=root;pwd=;database=simple")
        'you need to provide password for sql server
        myconnection.Open()

    End Sub

End Module

不考虑好的设计,这就是你需要的。只需更新 SqlConnection 字符串。如果您决定要使用多张工作表,只需将它们添加到工作表变量中即可。

Private Sub SaveDataFromSpreadsheet()
Dim filePath = "directory\me_spreadsheet.xlsx"
Dim connectionString = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}; Extended Properties=Excel 12.0;", filePath)
Dim worksheets As New List(Of String)() From {
  "Sheet1"
}

For i As Integer = 0 To worksheets.Count - 1
  Dim worksheetName As String = worksheets(i)
  Dim adapter = New OleDbDataAdapter(String.Format("SELECT * FROM [{0}$]", worksheetName), connectionString)
  Dim ds = New DataSet()

  adapter.Fill(ds, "me_table")

  Dim data As DataTable = ds.Tables("me_table")

  For x As Integer = 0 To data.Rows.Count - 1
    Dim z As String = If(String.IsNullOrEmpty(data.Rows(x).ItemArray(0).ToString()), "", data.Rows(x).ItemArray(0).ToString())
    Dim ad As String = If(String.IsNullOrEmpty(data.Rows(x).ItemArray(1).ToString()), "", data.Rows(x).ItemArray(1).ToString())
    Dim ag As String = If(String.IsNullOrEmpty(data.Rows(x).ItemArray(2).ToString()), "", data.Rows(x).ItemArray(2).ToString())
    Dim retd As String = If(String.IsNullOrEmpty(data.Rows(x).ItemArray(3).ToString()), "", data.Rows(x).ItemArray(3).ToString())
    Dim wg As String = If(String.IsNullOrEmpty(data.Rows(x).ItemArray(4).ToString()), "", data.Rows(x).ItemArray(4).ToString())

    Using myconnection As New SqlConnection("Data Source=Your-Server;Initial Catalog=me_database;Integrated Security=True")
      myconnection.Open()
      Dim mycommand As New SqlCommand("INSERT INTO me_Table(z, ad, ag, retd, wg) VALUES(@z, @ad, @ag, @retd, @wg)", myconnection)

      mycommand.Parameters.Add(New SqlParameter("@z", z))
      mycommand.Parameters.Add(New SqlParameter("@ad", ad))
      mycommand.Parameters.Add(New SqlParameter("@ag", ag))
      mycommand.Parameters.Add(New SqlParameter("@retd", retd))
      mycommand.Parameters.Add(New SqlParameter("@wg", wg))

      mycommand.ExecuteNonQuery()
      myconnection.Close()
    End Using

  Next
Next
End Sub