public int Execute() { var result = _sqlite3.Step(_statement); if (result == SqliteResult.RowReady) { var resetResult = _sqlite3.Reset(_statement); ThrowOnError(resetResult); return(0); } else if (result == SqliteResult.Ok || result == SqliteResult.Done) { var changes = _sqlite3.Changes(_database); var resetResult = _sqlite3.Reset(_statement); ThrowOnError(resetResult); return(changes); } else { throw new SqliteException( _sqlite3.Errmsg(_database) ?? string.Empty, _sqlite3.GetError(result)); } }