【发布时间】:2016-03-02 21:25:17
【问题描述】:
当我构建 SQLiteDatabase 时
public static final String CREATE_BOOK = "create table Book(" + "id integer primary key autoincrement," + "author text," + "price real," + "pages integer," + "name text," + "category_id integer)";
然后有一个按钮add_data
add_data.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SQLiteDatabase db = dbhelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("author", "jose");
values.put("name", "Thank you!");
values.put("pages", 999);
values.put("price", 99.9);
db.insert("Book", null, values); }
});
我想查询表格
query_data.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SQLiteDatabase db = dbhelper.getWritableDatabase();
Cursor cursor = db.query("Book", null, null, null, null, null, null);
if(cursor.moveToFirst()){
do {
String name = cursor.getString(cursor.getColumnIndex("name"));
String author = cursor.getString(cursor.getColumnIndex("author"));
int pages = cursor.getInt(cursor.getColumnIndex("pages"));
double price = cursor.getDouble(cursor.getColumnIndex("price"));
Log.d("MainActivity", "book name is" + name);
Log.d("MainActivity", "book author is" + author);
Log.d("MainActivity", "book pages is" + pages);
Log.d("MainActivity", "book prices is" + price);
}while (cursor.moveToNext());
}
cursor.close();
}
});
我运行它,有一些错误:无法从具有 1 行 5 列的 CursorWindow 读取第 0 行第 -1 列。确保 Cursor 在从中访问数据之前已正确初始化。
最后,我将add_data的顺序交换为“作者”和“名称”,它运行
有什么问题吗?谢谢!
【问题讨论】: