2012-01-25 104 views
6

我有一個數據庫名稱爲「線索」(SQLite的Android設備)它有一個表HELLO包含一列NAME我可以得到價值來自該列的字符串。 讓我告訴你我的代碼段如何將數據庫值到Android中(SQLite數據庫)的字符串數組

myDB =hello.this.openOrCreateDatabase("CUED", MODE_PRIVATE, null); 
      Cursor crs = myDB.rawQuery("SELECT * FROM HELLO", null); 


      while(crs.moveToNext()) 
      { 
       String uname = crs.getString(crs.getColumnIndex("NAME")); 
       System.out.println(uname); 
} 

它將由one.Now打印值一個我需要的是,我想從數據庫,這樣我可以將其存儲在一個字符串數組的列值。

回答

25

你已經做了最困難的部分...數組的東西很簡單:

String[] array = new String[crs.getCount()]; 
int i = 0; 
while(crs.moveToNext()){ 
    String uname = crs.getString(crs.getColumnIndex("NAME")); 
    array[i] = uname; 
    i++; 
} 

不管結果如何,我總是建議使用集合的情況下是這樣的:

List<String> array = new ArrayList<String>(); 
while(crs.moveToNext()){ 
    String uname = crs.getString(crs.getColumnIndex("NAME")); 
    array.add(uname); 
} 

爲了比較陣列,你可以做這樣的事情:

boolean same = true; 
for(int i = 0; i < array.length; i++){ 
    if(!array[i].equals(ha[i])){ 
     same = false; 
     break; 
    } 
} 
// same will be false if the arrays do not have the same elements 
+0

謝謝現在老兄能不能幫我一次,我有另一個字符串數組我想數組中的兩個值進行比較,讓我解釋我的第一個數組--- String [] ha = {「hello」,「hai」};和String數組----數據庫---- String [] array = {「hello」,「hai」};我想檢查兩個數組的每個位置是否都一樣讓我進入下一頁 – Ramz

+0

好,但是如果需要只從一行中獲取所有列值才能形成字符串數組意味着該怎麼辦? – Subha

+0

非常感謝你!它適用於我:D – alireza71

0
 String[] str= new String[crs.getCount()]; 
     crs.movetoFirst();   
    for(int i=0;i<str.length();i++) 
     { 
      str[i] = crs.getString(crs.getColumnIndex("NAME")); 
      System.out.println(uname); 
     crs.movetoNext(); 
     } 

享受它

+0

您並未移動光標位置。 – Cristian

0

這是我的代碼,返回ArrayList的更遠包含值:

public ArrayList<String> getAllPlayers() { 

    SQLiteDatabase db = this.getReadableDatabase(); 
    Cursor cur = db.rawQuery("SELECT " + serailnumber + " as _id, " + title 
      + " from " + table, new String[] {}); 
    ArrayList<String> array = new ArrayList<String>(); 
    while (cur.moveToNext()) { 
     String uname = cur.getString(cur.getColumnIndex(title)); 
     array.add(uname); 

    } 
    return array; 
} 
相關問題