首页 > 代码库 > Couldn't read row 0, col -1 from CursorWindow
Couldn't read row 0, col -1 from CursorWindow
java.lang.IllegalStateException: Couldn‘t read row 0, col -1 from CursorWindow.
Make sure the Cursor is initialized correctly before accessing data from it.
SQLiteDatabase 学习过程中,使用query() 查询表单数据时,遇到Couldn‘t read row 0, col -1 from CursorWindow错误。
排除建表字段错误、拼写错误、query()输入字段错误。当我使用rawQuery()方法取代query()方法,问题就解决了。
代码如下:
1.建表 MyDatabaseHelper
1 private static final String CREATE_CONTACTS = "create table contact (" 2 + "id integer primary key autoincrement, " 3 + "name text, " 4 + "number text )"; 5 6 public MyDatabaseHelper(Context context, String name, CursorFactory factory, int version) { 7 super(context, name, factory, version); 8 } 9 10 @Override11 public void onCreate(SQLiteDatabase db) {12 db.execSQL(CREATE_CONTACTS); 13 }
2.查询 根据searchName查询表单
1 private void searchContact(String searchName) { 2 db = dbHelper.getReadableDatabase(); 3 //Cursor cursor = db.query("contact", new String[] {"name"}, "name = ?", new String[] {searchName}, null, null, null); 4 Cursor cursor = db.rawQuery("select * from contact where name = ?", new String[] {searchName}); 5 if(cursor.moveToFirst()) { 6 //String name = cursor.getString(cursor.getColumnIndex("name")); 7 String number = cursor.getString(cursor.getColumnIndex("number")); 8 tv_name.setText(searchName); 9 tv_number.setText(number);10 tel = "tel:" + number;11 }else {12 tv_name.setText("404! Not Found");13 tv_number.setText("10086");14 tel = "tel:10086";15 }16 cursor.close();17 db.close();18 }
1.当使用query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy)
String name = cursor.getString(cursor.getColumnIndex("name"))
用这句代码检验 可以获得到name,证明cursor正确指向所要查询数据。
String number = cursor.getString(cursor.getColumnIndex("number"))
但这句代码就会报Couldn‘t read row 0, col -1 from CursorWindow。
getColumnIndex("number") 返回值竟然是-1,百思不得其解!
2.使用rawQuery(String sql, String[] selectionArgs)
name和number字段都可以准确获得,问题完美解决。
转载请注明出处:http://www.cnblogs.com/michaelwong/p/4128299.html
Couldn't read row 0, col -1 from CursorWindow
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。