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


    } 

表の列を使用して文字列のアイテムを取得する方法をSQLiteはカーソルを

私は文字列配列にPIC &コメントの値を取りたい「ID、PIC、コメント」。

私のコードは次のとおりです。

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

? –

答えて

10

あなたはこのようにそれを実行する必要があります。

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

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

2

そして、何あなたがすべきことは

ことで

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

を交換することです

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

ループ内でmoveToNextを単に使用して繰り返します。

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")); 
} 

これを使用してください。それがあなたに役立つことを願っています

3

これは私が

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

列の位置が変更される可能性があるため、常にpositionではなくcolumn nameを使用してください。

もちろん列名は変更できますが、新しい列を追加して列1と列2の間に配置するとしましょう。 番号を使用する場合は、コードを変更する必要があります。 名前を使用すると、あなたは大丈夫です。

は、それがより読みやすいですし、40列を持っている場合、何が起こったのか?( - 一部は言う<、それが悪い)あなたが得たどのようなエラー

+1

これは最高かつ簡単な回答です – DevMike

関連する問題