Problemas de actualización de Android sqlite
Por favor, disculpe si mi pregunta es demasiado simple y me guía lo que está mal en mi declaración de actualización.
Tengo sqlite para almacenar mis registros en la aplicación android. Pude insertar y seleccionar con éxito. Sin embargo, durante la actualización, estoy recibiendo algún error.
- Cómo insertar a granel en sqlite en android
- SQLite de Android que elimina una fila específica de la base de datos
- ¿Es necesario cerrar una base de datos abierta con window.openDatabase?
- Base de datos de exportación de importación android
- Copia de seguridad y restauración de la base de datos SQLite a sdcard
Código:
private static final String TABLE_WIFI = "wifi"; // table name private static final String KEY_BSSID = "bssid"; private static final String KEY_NAME = "name"; private static final String KEY_LAT = "lat"; private static final String KEY_LNG = "lng"; private static final String KEY_ACCURACY = "accuracy"; public void onCreate(SQLiteDatabase db) { String CREATE_WIFI_TABLE = "CREATE TABLE " + TABLE_WIFI + "(" + KEY_BSSID + " TEXT," + KEY_NAME + " TEXT," + KEY_LAT + " TEXT," + KEY_LNG + " TEXT," + KEY_ACCURACY + " TEXT" +")"; db.execSQL(CREATE_WIFI_TABLE); } public void updateLocation(Wifi theWifiLocation) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(KEY_LAT, theWifiLocation.getLat()); values.put(KEY_LNG, theWifiLocation.getLng()); values.put(KEY_ACCURACY, theWifiLocation.getAccuracy()); db.update(TABLE_WIFI, values, KEY_BSSID + "=" + theWifiLocation.getBssid(), null); }
Registro de errores:
04-26 22:35:42.334: E/AndroidRuntime(30194): FATAL EXCEPTION: Thread-4130 04-26 22:35:42.334: E/AndroidRuntime(30194): android.database.sqlite.SQLiteException: near ":04": syntax error: , while compiling: UPDATE wifi SET lng=?,accuracy=?,lat=? WHERE bssid=54:04:a6:de:98:0c 04-26 22:35:42.334: E/AndroidRuntime(30194): at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method) 04-26 22:35:42.334: E/AndroidRuntime(30194): at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:68) 04-26 22:35:42.334: E/AndroidRuntime(30194): at android.database.sqlite.SQLiteProgram.compileSql(SQLiteProgram.java:150) 04-26 22:35:42.334: E/AndroidRuntime(30194): at android.database.sqlite.SQLiteProgram.compileAndbindAllArgs(SQLiteProgram.java:368) 04-26 22:35:42.334: E/AndroidRuntime(30194): at android.database.sqlite.SQLiteStatement.acquireAndLock(SQLiteStatement.java:272) 04-26 22:35:42.334: E/AndroidRuntime(30194): at android.database.sqlite.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:84) 04-26 22:35:42.334: E/AndroidRuntime(30194): at android.database.sqlite.SQLiteDatabase.updateWithOnConflict(SQLiteDatabase.java:1919) 04-26 22:35:42.334: E/AndroidRuntime(30194): at android.database.sqlite.SQLiteDatabase.update(SQLiteDatabase.java:1870)
Alguien puede ayudarme por favor
Gracias.
- Cómo importar db a sqlite pre-fabricados administrado por ormlite
- Consulta SQLite que contiene caracteres especiales
- Cómo insertar marca de tiempo en una columna de base de datos SQLite? Utilizando el tiempo de función ('ahora')?
- Alcanzó el tamaño MAX para la caché de instrucciones compiladas-sql para la base de datos
- Intent.ACTION_PICK devuelve el cursor vacío para algunos contactos
- Android y SQLite - recupera el ID máximo de la tabla
- Eliminación automática de objetos anidados en ORMLite
- Android Seleccionar fila por Id en Sqlite?
Su bsdid es una cadena, por lo que la consulta necesita eiter
db.update(TABLE_WIFI, values, KEY_BSSID + "=\"" + theWifiLocation.getBssid() +"\"", null);
O incluso mejor
db.update(TABLE_WIFI, values, KEY_BSSID + "=?", new String[]{ theWifiLocation.getBssid() });
- ¿Cómo podría SystemClock.uptimeMillis () siempre envolver?
- Cómo saber con qué API de Android se construyó un APK