以下是调用InsertInto Sub和InsertInto Sub本身的代码行。基本的东西,应该没有问题,但它没有。它通过,没有错误并执行命令但行永远不会添加到表中。我还有一个我写过的Bulk Insert,它之前插入了许多行数据,我之前知道这些数据是有效的,并且已经尝试过,但仍然没有运气。
SQLite需要在表中插入行吗?我检查了SQLite文档,INSERT INTO语句与他们在网站上显示的完全相同。不知道还有什么可以做的,因为插件在tempDT表中本地工作,如果我在那里尝试。我的意思是我可以加载表,删除它然后在插入行后创建一个新表,但我不应该这样做。这是一个简单的基本命令,它应该工作......并且在有人说没有字符串的$实现的情况下尝试正常写出来之前,我已经尝试了几种不同的方法,包括“普通”和帽子没有也没用过。我也没有使用数据变量,只使用一个单词硬编码字符串作为值,但也没用。
SQLTables.InsertInto(MyDB, "SaveGames", $"INSERT INTO SaveGames(FileName,SaveGameJSONString) VALUES ('{fileName}', '{model}')")
Public Sub InsertInto(dbName As String, tableName As String, SQLCmd As String, Optional ByVal myFilePath As String = "")
Dim Conn As New SQLiteConnection()
GetConnectionString(dbName, Conn, myFilePath)
Using Conn
Dim SQL As String = SQLCmd
Dim Cmd As New SQLiteCommand(SQL, Conn)
Cmd.ExecuteNonQuery()
End Using
End Sub
答案 0 :(得分:0)
我不知道您的vendor.js/css
方法实际上做了什么,但它应该返回一个传递给GetConnectionString
类的构造函数的连接字符串。
然后以下内容应该有效:
SQLiteConnection
打开连接后,您应该能够执行以下查询:
Public Sub InsertInto(dbName As String, tableName As String, SQLCmd As String, Optional ByVal myFilePath As String = "")
Dim Conn As New SQLiteConnection(GetConnectionString(dbName, myFilePath))
Conn.Open()
Dim Cmd As New SQLiteCommand(Sql, Conn)
Cmd.ExecuteNonQuery()
Conn.Close()
End Sub
答案 1 :(得分:0)
忘了我必须创建一个事务,然后在SQLite中提交事务,以便实际保存到数据库...否则它只是在本地保存更改并且当您关闭程序时它们会消失...正在按预期工作
Using **transaction = Conn.BeginTransaction()**
Dim Cmd As New SQLiteCommand(SQLCmd, Conn)
Cmd.ExecuteNonQuery()
**transaction.Commit()**
Conn.Close()
End Using
编辑:这是有效的,但不需要我发现...我在看到数据库中的值之后意识到然后我再次运行程序后去了它是写入bin / Debug目录并且每次我运行程序时都会覆盖它。所以我现在把它指向正确的目录,并且它与我的初始代码一样正常工作。