Пытаясь понять использование баз данных SQLite в памяти, я прочитал об этом в документации по SQLite, и (я думаю) почти все, что я мог найти здесь, в stackoverflow об этом.
Я хочу скопировать таблицу из локальной базы данных в базу данных в памяти.
Чтобы понять, как работают базы данных SQLite в памяти, я создал этот код:
Private Sub Test()
Dim intTemp As Integer
Dim strSQL As String
Dim conn As New SQLiteConnection("Data Source=':memory:';Version=3;New=True;")
conn.Open()
strSQL = "CREATE TABLE Table_1 (Table_1ID [VARCHAR(5)] NOT NULL, Item [VARCHAR(40)]);"
Dim cmd As SQLiteCommand = New SQLiteCommand(strSQL) With {
.Connection = conn
}
strSQL = "SELECT Count(*) FROM Table_1;"
' Test (1): Result: 0
intTemp = cmd.ExecuteScalar
strSQL = "INSERT INTO Table_1 (Table_1ID, Item) VALUES ('1000', 'Book');"
cmd.CommandText = strSQL
' Test (2): Result: 1
intTemp = cmd.ExecuteNonQuery
strSQL = "SELECT Count(*) FROM Table_1;"
' Test (3): Result: 0
intTemp = cmd.ExecuteScalar
End Sub
Каким-то образом это работает: когда я вставляю запись в таблицу, результат равен 1. Но когда я подсчитываю записи, результат равен 0.
Есть идеи, что я здесь делаю не так? Есть ли где-нибудь рабочий образец, в C # или в VB.Net? Может быть, даже с решением моей первоначальной проблемы: скопировать таблицу из локальной базы данных в базу данных в памяти? Спасибо!