2011-09-21 34 views
-2

我正在構建一個應用程序,我需要訪問我存儲在sqlite數據庫中的用戶的一些細節。問題是我熟悉的代碼返回「只」一個值...但是當我嘗試訪問多個列......應用程序出錯。 下面是我使用的代碼。謝謝。如何在android sqlite應用程序中訪問多個列值?

public String selectAll() 
{ 

Cursor cursor = db.query(DB_TABLE_NAME2, new String[] { DB_COLUMN_1_NAME,DB_COLUMN_2_NAME,DB_COLUMN_3_NAME,DB_COLUMN_4_NAME,DB_COLUMN_5_NAME,DB_COLUMN_6_NAME},null, null, null, null,null); 

    if(cursor.getCount() >0) 
    { 


     cursor.moveToNext(); 

      email = cursor.getString(cursor.getColumnIndex(DB_COLUMN_1_NAME)); 
      password=cursor.getString(cursor.getColumnIndex(DB_COLUMN_2_NAME)); 
      phone = cursor.getString(cursor.getColumnIndex(DB_COLUMN_3_NAME)); 
      fname=cursor.getString(cursor.getColumnIndex(DB_COLUMN_4_NAME)); 
      lname = cursor.getString(cursor.getColumnIndex(DB_COLUMN_5_NAME)); 
      location=cursor.getString(cursor.getColumnIndex(DB_COLUMN_6_NAME)); 
      street = cursor.getString(cursor.getColumnIndex(DB_COLUMN_7_NAME)); 

    } 

      return password; 
      return email; 
      return phone; 
      return fname; 
      return lname;   

      return location; 
      return street; 
      return email; 


} 
+0

嗨檢查你的代碼。你的查詢只有6列,但你試圖訪問7列。所以它會給出錯誤。 –

+0

好的,看看我的答案。 – user370305

+0

看看你的代碼......它有一堆** return **語句。但它會在第一個退出。所以,它總是隻會返回'password'。 –

回答

1

HIII

可以使用具有getter和setter方法和簡單的特定變量的設置方法中的值相加包裝類。 通過傳遞整個包裝類,您可以使用getter方法獲取所有變量的值。

希望u得到我說什麼.....

+0

避免內部getter/setter方法而不是使用public static成員。看到這個http://developer.android.com/guide/practices/design/performance.html – Pratik

+0

我知道,我已經給出了我知道的想法.... – Richa

+0

是啊我知道ABT,你的答案沒有錯,你絕對正確,但作爲性能明智的事情,我被告知你 – Pratik

0

其實你沒有把循環在你的代碼,這就是爲什麼對於多列其返回單個列作循環。例如:

$if (c.moveToFirst()) 
    { 
     do { 
      plysidvec[i] = c.getString(0); 
      plysvec.add(c.getString(1)); 
      i++; 
     } while (c.moveToNext()); 
    } 
相關問題