LEGEN Sie mit Transaktion und Parameter?
Lerne ich über VB.Net und arbeiten müssen Sie eine SQLite-Datenbank mit der open-source-System.Daten.SQLite ADO.Net Lösung
Die Beispiele fand ich in der HOWTO-Sektion sind nur in C#. Hätte jemand ein einfaches Beispiel in VB.Net dass ich studieren konnte, um zu verstehen, wie die Nutzung von Transaktionen beim Einfügen mehrerer Parameter?
FWIW, hier ist der code, den ich auf Arbeit bin:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim SQLconnect As New SQLite.SQLiteConnection()
Dim SQLcommand As SQLite.SQLiteCommand
Dim SQLtransaction As SQLite.SQLiteTransaction
SQLconnect.ConnectionString = "Data Source=test.sqlite;"
SQLconnect.Open()
SQLcommand = SQLconnect.CreateCommand
SQLcommand.CommandText = "CREATE TABLE IF NOT EXISTS files (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, hash TEXT);"
SQLcommand.ExecuteNonQuery()
'================ INSERT starts here
SQLtransaction = SQLconnect.BeginTransaction()
Dim myparam As New SQLite.SQLiteParameter()
SQLcommand.CommandText = "INSERT INTO [files] ([name],[hash]) VALUES(?,?)"
SQLcommand.Parameters.Add(myparam)
'How to set all parameters? myparam.Value
SQLcommand.ExecuteNonQuery()
SQLtransaction.Commit()
'================ INSERT ends here
SQLcommand.CommandText = "SELECT id,name,hash FROM files"
'How to tell if at least one row?
Dim SQLreader As SQLite.SQLiteDataReader = SQLcommand.ExecuteReader()
While SQLreader.Read()
ListBox1.Items.Add(SQLreader(1))
End While
SQLcommand.Dispose()
SQLconnect.Close()
End Sub
Danke.
Edit: Für Interessierte, hier einige arbeiten code:
SQLtransaction = SQLconnect.BeginTransaction()
SQLcommand.CommandText = "INSERT INTO files (name,hash) VALUES(@name,@hash)"
SQLcommand.Parameters.AddWithValue("@name", "myfile")
SQLcommand.Parameters.AddWithValue("@hash", "123456789")
SQLcommand.ExecuteNonQuery()
SQLtransaction.Commit()
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Transaktion Ansatz dürfte der gleiche sein (vorausgesetzt, die SQLite-API unterstützt Transaktionen.) Für mehrere Parameter, müssen Sie erklären, ein SqlParameter-Klasse-Instanz für die einzelnen parameter, fügen Sie dann jeweils auf die Abfrage.
Als für Ihre Frage, "Wie zu erkennen, wenn mindestens eine Zeile" standard .NET SQLReader einen "HasRows" - Eigenschaft. also
Ich nehme an, der SQLlite-Treiber sollte als gut.
Sorry, wenn dieser code nicht sauber VB, ich habe nicht berührt es in über 5 Jahren!