Gab*_*lle 5 sqlite android exception
我在设备上收到此错误,而在其他设备上运行良好.这是错误:
Caused by: android.database.sqlite.SQLiteException: not an error
at android.database.sqlite.SQLiteQuery.nativeFillWindow(Native Method)
at android.database.sqlite.SQLiteQuery.fillWindow(SQLiteQuery.java:86)
at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:164)
at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:156)
at com.Orange.MakeVisits.Themes.onCreate(Themes.java:162)
Run Code Online (Sandbox Code Playgroud)
我执行一个查询,并在检查Cursor是否为空的行,我得到此错误.这是我的代码:
String stmtGetThemes = "SELECT * FROM pr_fields_descriptor a "
+ "inner join pr_fields_starring b on a.id_fields_descriptor = b.fields_descriptor_id "
+ "where b.starring_id = '"+pos_starring_id+"' and a.theme_id='"+themes_ids[m]+"' order by form_rank";
Cursor getThemesCursor1 = db.databaseQuery(stmtGetThemes);
if (getThemesCursor1!=null && getThemesCursor1.getCount()>0){
//----
}
Run Code Online (Sandbox Code Playgroud)
和databasequery是这个方法(在扩展的类中定义SQLiteOpenHelper):
public Cursor databaseQuery(String stmt) {
Cursor cursor = db.rawQuery(stmt, null);
return cursor;
}
Run Code Online (Sandbox Code Playgroud)
知道什么可能导致这个错误吗?声明不好?为什么它适用于其他设备?欢迎任何想法.谢谢你的推荐.
不要在查询中传递数组类型参数,有时它不起作用
int themes_id = themes_ids[m];
String stmtGetThemes = "SELECT * FROM pr_fields_descriptor a inner join pr_fields_starring b on a.id_fields_descriptor = b.fields_descriptor_id where b.starring_id = '"+pos_starring_id+"' AND a.theme_id = '"+themes_id+"' ORDER BY form_rank";
Cursor getThemesCursor1 = db.databaseQuery(stmtGetThemes);
if (getThemesCursor1 != null && getThemesCursor1.getCount() != 0){
//----
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
874 次 |
| 最近记录: |