Android sqlite更新问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Android sqlite更新问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2658字,纯文字阅读大概需要4分钟。
内容图文
![Android sqlite更新问题](/upload/InfoBanner/zyjiaocheng/911/421f1815c9d74d64aff22c23bf709685.jpg)
如果我的问题太简单,请告诉我在我的更新声明中有什么问题,请向我道歉.
我有sqlite将我的记录存储在Android应用程序中.我能够成功插入和选择.但是,在更新期间,我收到一些错误.
码:
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);
}
错误日志:
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)
谁能帮帮我吗
谢谢.
解决方法:
你的bsdid是一个String,所以你需要查询
db.update(TABLE_WIFI, values, KEY_BSSID + "=\"" + theWifiLocation.getBssid() +"\"", null);
甚至更好
db.update(TABLE_WIFI, values, KEY_BSSID + "=?", new String[]{ theWifiLocation.getBssid() });
内容总结
以上是互联网集市为您收集整理的Android sqlite更新问题全部内容,希望文章能够帮你解决Android sqlite更新问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。