Sar*_*bat 5 sqlite string android cursor
public Cursor getImages(long rowId) throws SQLException
{
Cursor mCursor =
db.rawQuery("select * from Pictures WHERE id=" + rowId + ";", null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
Run Code Online (Sandbox Code Playgroud)
表列"id,pic,comment"
我想将pic和comment的值取为字符串数组.
我的代码是:
int i=0;
Cursor c1 = db.getImages(memberId);
c1.moveToFirst();
while(c1.isLast()){
pictures[i]=c1.getString(1);
comments[i]=c1.getString(2);
i++;
}
Run Code Online (Sandbox Code Playgroud)
这不起作用.
zio*_*npi 12
你应该这样做:
c1.getString(cursor.getColumnIndex("pic"));
和
c1.getString(cursor.getColumnIndex("comment"));
这是我这样做的方式
我更喜欢
获取列索引()
而不是数字。
if(cursor.moveToFirst()){
do{
String varaible1 = cursor.getString(cursor.getColumnIndex("column_name1"));
String varaible2 = cursor.getString(cursor.getColumnIndex("column_name2"));
}while (cursor.moveToNext());
}
cursor.close();
Run Code Online (Sandbox Code Playgroud)
始终使用列名而不是位置,因为列位置可以改变。
当然列名也可以更改,但假设您添加一个新列并将其定位在第 1 列和第 2 列之间。如果使用数字,则需要更改代码。但是如果你使用name,你会没事的。
它更具可读性,如果您有 40 列会发生什么?(<-有人说,这很糟糕)