title: INSERT with transaction and parameters?
body: <p>I'm learning about VB.Net and need to work with an SQLite database using the open-source System.Data.SQLite ADO.Net solution</p>
  
  <p>The examples I found in the HOWTO section are only in C#. Would someone have a simple example in VB.Net that I could study to understand how to use transactions when INSERTing multiple parameters?</p>
  
  <p>FWIW, here's the code I'm working on:</p>
  
  <pre><code>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
  </code></pre>
  
  <p>Thank you.</p>
  
  <hr>
  
  <p>Edit: For those interested, here's some working code:</p>
  
  <pre><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()
  </code></pre>