vb.net - 使用 VB.net 在 SQLite 中导入 CSV
问题描述
我有一个问题,希望有人能帮助我。我用 Visual Basic 创建了一个程序,并希望将 CSV 文件导入 SQLite 数据库。我找到了这个链接: How to bulk insert a CSV file into SQLite C# 代码在 C# 中,我在 VB 中重写了它。
Public Sub LoadCheckFiletoDatabase(ByVal checkFilePath As String)
Dim tempTable As DataTable = GetDataTableFromCsv(checkFilePath)
For Each DataR As DataRow In Me.memDataTable.Columns
Dim Dic As Dictionary(Of String, Object) = New Dictionary(Of String, Object)()
For Each DataCol As DataColumn In Me.memDataTable.Columns
Dim field As String = DataCol.ColumnName.ToString()
Dim value As Object = CStr(DataR(DataCol).ToString())
Dic.Add(field, value)
Next
Using sQLiteConnection As SQLiteConnection = New SQLiteConnection("data source=" & databasepath)
Using sQLiteCommand As SQLiteCommand = New SQLiteCommand(sQLiteConnection)
Dim sQLiteHelper As System.Data.SQLite.SQLiteHelper = New
SQLiteHelper(sQLiteCommand)
sQLiteHelper.BeginTransaction()
sQLiteHelper.Insert(tempTable.TableName, Dic)
End Using
Public Shared Function GetDataTableFromCsv(ByVal path As String) As DataTable
Dim pathOnly As String = Path.GetDirectoryName(path)
Dim fileName As String = Path.GetFileName(path)
Dim sql As String = "SELECT * FROM [" & fileName & "]"
Using connection As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & pathOnly & ";Extended Properties=""Text;HDR=" & "Yes" & """")
Using command As OleDbCommand = New OleDbCommand(sql, connection)
Using adapter As OleDbDataAdapter = New OleDbDataAdapter(command)
Dim dataTable As DataTable = New DataTable()
dataTable.Locale = CultureInfo.CurrentCulture
adapter.Fill(dataTable)
dataTable.TableName = fileName.TrimEnd(New Char() {"."c, "c"c, "s"c, "v"c})
Return dataTable
End Using
End Using
End Using
我想我理解代码,但我这里有问题。
System.Data.SQLite.SQLiteHelper
我正在使用 System.Data.SQLite,它不知道这个命令。这是一个单独的库吗?如果是,我在哪里可以找到这些库,这在 VB 中是否也有效?正如我所说,我想将 CSV 文件导入 SQLite 数据库。它知道,它也适用于 sqlite3.exe,但该程序应该在几台不同的计算机上运行,因为我发现很难指定确切的路径,如链接中所述。从理论上讲,我必须: 1. 打开 CSV 2. 删除带有列名的顶行 3. 单独阅读每一行 4. 将其传输到 SQLite。由于 SQLite 似乎无法“批量插入”,因此第 3 和第 4 必须处于循环中。理论到此为止。我是一个血腥的初学者,不知道如何将它实现为代码。有没有人有一个例子,如果可能的话,在 VB.net 中,尽管在互联网上搜索了几个小时,但我发现什么也没有。或者有人可以给我一个关于如何以不同方式做的提示。正如我所说,我是一个该死的初学者,非常感谢任何形式的帮助。
解决方案
推荐阅读
- python - 如何从源代码文件的方法声明中删除方法参数并将其写回?
- spring-mvc - 以“选择”形式处理“空”的正确方法
- javascript - 如何使用 React Native 创建发光动画
- java - 如何在菜单项atctive中画一条线
- c# - Windows 中有没有一种方法可以为具有 DPI 意识的前景应用程序获取正确的矩形?
- html - 你在哪里放置页脚反应?
- c++ - 没有构造函数“RobotDriveSwerve::RobotDriveSwerve”的实例与参数列表匹配——参数类型是
- html - 在 HTML 中通过“href=tel:”使用括号
- javascript - 如果表单有效,如何验证表单(使用 javascript)并运行函数?
- python - 无法使用 SQL Alchemy 连接未知的 MySQL 服务器主机