2012-04-26 26 views
5
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; 


    } 

cột Bảng "id, pic, bình luận"Sqlite làm thế nào để có được các mục chuỗi sử dụng con trỏ

Tôi muốn lấy giá trị của pic & bình luận cho mảng chuỗi.

Mã của tôi là:

int i=0; 
     Cursor c1 = db.getImages(memberId);  
     c1.moveToFirst(); 
     while(c1.isLast()){ 
      pictures[i]=c1.getString(1); 
      comments[i]=c1.getString(2); 
      i++; 
     } 

này không làm việc.

+0

lỗi Những gì bạn nhận được ?? –

Trả lời

10

Bạn nên làm điều đó như thế này:

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

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

2

Và những gì bạn cần làm là để thay thế

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

By

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

chỉ cần sử dụng moveToNext trong vòng lặp của bạn để lặp lại.

while(ct.moveToNext()){ 
    pictures[i]=c1.getString(1); 
    comments[i]=c1.getString(2); 
    i++; 
} 
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")); 
} 

Sử dụng này. Tôi hy vọng nó sẽ giúp bạn.

3

Đây là cách tôi làm điều đó

tôi thích

getColumnIndex()

thay vì số.

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

Luôn sử dụng tên cột thay vì vị trí, vì vị trí cột có thể thay đổi. Bạn cũng có thể thay đổi mã của mình nếu bạn sử dụng số. Nhưng nếu bạn sử dụng tên, bạn sẽ ổn thôi.

và nó là dễ đọc hơn và những gì xảy ra nếu bạn có 40 cột? (< -một nói, nó là xấu)

+1

Đây là câu trả lời hay nhất và đơn giản – DevMike

Các vấn đề liên quan