Hola Carlos:
Según la
documentación de la librería SQL, ExecQuerySingleResult devuelve Null (as Object) si no encuentra resultados (no si no se ejecuta correctamente).
ExecQuerySingleResult (Query As String) As String
Executes the query and returns the value in the first column and the first row (in the result set).
Returns Null if no results were found.
Example:
Dim NumberOfMatches As Int
NumberOfMatches = SQL1.ExecQuerySingleResult("SELECT count(*) FROM table1 WHERE col2 > 300")
Además, ExecQuerySingleResult ejecuta una consulta, cuando lo que quieres hacer es una actualización, es decir, no quieres obtener datos de tu base de datos, sino actualizarlos.
Así que creo que deberías usar ExecNonQuery para hacer el update.
ExecNonQuery (Statement As String)
Executes a single non query SQL statement.
Example:
SQL1.ExecNonQuery("CREATE TABLE table1 (col1 TEXT , col2 INTEGER, col3 INTEGER)")
If you plan to do many "writing" queries one after another, then you should consider using BeginTransaction / EndTransaction.
It will execute significantly faster.
saludos,