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;
}
表格列“id,pic,comment”
我想拍摄pic和amp;的价值对字符串数组的注释。
我的代码是:
int i=0;
Cursor c1 = db.getImages(memberId);
c1.moveToFirst();
while(c1.isLast()){
pictures[i]=c1.getString(1);
comments[i]=c1.getString(2);
i++;
}
这不起作用。
答案 0 :(得分:12)
你应该这样做:
c1.getString(cursor.getColumnIndex("pic"));
和
c1.getString(cursor.getColumnIndex("comment"));
答案 1 :(得分:4)
只需在循环中使用moveToNext
进行迭代。
while(ct.moveToNext()){
pictures[i]=c1.getString(1);
comments[i]=c1.getString(2);
i++;
}
答案 2 :(得分:4)
这就是我这样做的方式
我更喜欢
getColumnIndex()
而不是数字。
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();
始终使用列名而不是位置,因为列位置可能会发生变化。
当然列名也可以改变,但是如果你添加一个新列并且它在第1列和第2列之间的位置,就说。 如果使用数字,则需要更改代码。 但如果你使用名字,你会没事的。
它更具可读性,如果你有40列,会发生什么?(< -some say,它很糟糕)
答案 3 :(得分:2)
你应该做的是替换
c1.moveToFirst();
while(c1.isLast()){
//your code
}
通过
//c1.moveToFirst();
while(c1.moveToNext()){
//your code
}
答案 4 :(得分:1)
Cursor c = db.rawQuery("select username from user_information where username ='" + username_txt.getText() + "'", null);
c.moveToFirst();
if (c.moveToFirst()) {
username = c.getString(c.getColumnIndex("username"));
}
使用它。我希望它可以帮助你。