gpt4 book ai didi

android - 我正在尝试从我的数据库中获取数据,但出现 cursoroutofbound 异常

转载 作者:行者123 更新时间:2023-11-30 03:14:45 26 4
gpt4 key购买 nike

**这是我的数据库代码,当我使用 getVenue() 时,出现异常..任何人都可以帮我解决这个问题???请

@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + "(" + ID
+ " INTEGER PRIMARY KEY," + NAME + " TEXT," + BOOKMARK
+ " TEXT" + ")";
db.execSQL(CREATE_TABLE);
}


public void addVenue(Venue v) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(ID, v.getId());
values.put(NAME, v.getComment());
values.put(BOOKMARK, v.getBookmark());

db.insert(TABLE_NAME, null, values);
db.close();


}

public Venue getVenue(int id) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(TABLE_NAME,
new String[] { ID, NAME, BOOKMARK }, ID + "=?",
new String[] { String.valueOf(id) }, null, null, null, null);

if (cursor != null)
cursor.moveToFirst();
Venue v = new Venue(Integer.parseInt(cursor.getString(0)),
cursor.getString(1), cursor.getString(2));
return v;
}

最佳答案

在你的表声明中,ID被指定为一个整数,但是你尝试将它作为一个字符串来查询(String.valueOf(id)。SQLite中的字符串需要被“'”字符包围,例如'9 '。作为测试,尝试将搜索查询设置为“ID=1”,并将 whereargs 设置为空,如下所示:

public Venue getVenue(int id) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(TABLE_NAME,
new String[] { ID, NAME, BOOKMARK }, ID + "=1",
null, null, null, null, null);

if (cursor != null)
cursor.moveToFirst();
Venue v = new Venue(Integer.parseInt(cursor.getString(0)),
cursor.getString(1), cursor.getString(2));
return v;
}

然后使用以下命令查看它是否有效:

Log.d("cusor results for row 1: ", "Cursor Row: "+String.valueOf(cursor.getInt(0) + ", Name: " + cursor.getString(1) + ", Bookmark: " + cursor.getString(2))

此外,您的 cursor.getString(0) 不正确,因为您的第一列是您的 ID 列,它是一个整数,因此您将使用“cursor.getInt(0)”

关于android - 我正在尝试从我的数据库中获取数据,但出现 cursoroutofbound 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20320522/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com