【发布时间】:2016-09-05 10:52:51
【问题描述】:
使用 SQlite 在 VisualStudio 上工作
我用
创建我的表Dim mainTable = "CREATE TABLE IF NOT EXISTS users (userID INTEGER PRIMARY KEY, type VARCHAR(20))"
Dim tableA = "CREATE TABLE IF NOT EXISTS tableA (partA VARCHAR(20), userID INTEGER, FOREIGN KEY(user) REFERENCES users(userID) ON DELETE CASCADE)"
在我想在级联上删除的子节点上,我知道 userIDtoDelete 的值(之前在 DataGrid 上选择)并且我有这个连接
Dim connDeleteUser = New SQLiteConnection("Data Source=MyDataBase.sqlite;Version=3")
Try
Using (connDeleteUser)
connDeleteUser.Open()
Dim sql = "DELETE FROM actos WHERE userID = ?"
Dim connDeleteUser As SQLiteCommand = New SQLiteCommand(sql, connDeleteUser)
connDeleteUser.CommandText = sql
connDeleteUser.Parameters.AddWithValue("@userID", userIDtoDelete)
connDeleteUser.ExecuteNonQuery()
'I don´t know if this line is neccesary
connDeleteUser.Close()
End Using
Catch ex As Exception
MsgBox(ex.ToString())
End Try
我知道我需要声明 PRAGMA foreign_keys = ON 但我不知道如何
我尝试过这样的事情:
PRAGMA foreign_keys = ON
connDeleteUser.PrepareRetries(@"PRAGMA foreign_keys = ON)
connDeleteUser.CommandText = "PRAGMA foreign_keys = ON"
Dim sql = "DELETE FROM users WHERE userID = ? PRAGMA foreign_keys = ON"
【问题讨论】: