Sqlite how to get string items using cursor

前端 未结 5 1826
鱼传尺愫
鱼传尺愫 2020-12-18 06:38
public Cursor getImages(long rowId) throws SQLException
    {
        Cursor mCursor =
                db.rawQuery(\"select * from Pictures WHERE id=\" + rowId + \";         


        
相关标签:
5条回答
  • 2020-12-18 06:46

    You should do it like this:

    c1.getString(cursor.getColumnIndex("pic"));

    and

    c1.getString(cursor.getColumnIndex("comment"));

    0 讨论(0)
  • 2020-12-18 06:52

    This is the way I do it

    I prefer

    getColumnIndex()

    instead of number.

    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();
    

    Always use column name instead of position, because column position can change.

    of course column name can change as well but let say if you add a new column and it position between column 1 and column 2. You need to change your code if you use number. But if you use name, you will be fine.

    and it is more readable and what happened if you have 40 columns?(<-some say, it is bad)

    0 讨论(0)
  • 2020-12-18 06:52

    simply use moveToNext in your loop to iterate.

    while(ct.moveToNext()){
         pictures[i]=c1.getString(1);
         comments[i]=c1.getString(2);
         i++;
    }
    
    0 讨论(0)
  • 2020-12-18 07:06
    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"));
    }
    

    Use this. I hope it helps you.

    0 讨论(0)
  • 2020-12-18 07:11

    And what you should do is to replace

    c1.moveToFirst();
    while(c1.isLast()){
         //your code
    }
    

    By

    //c1.moveToFirst();
    while(c1.moveToNext()){
         //your code
    }
    
    0 讨论(0)
提交回复
热议问题