2012-01-25 3 views
6

mam nazwę bazy danych „cued” (SQLite Android) mieć stół HELLO który zawierać kolumnę NAZWA mogę uzyskać wartość do String z tej kolumny. Pokażę ci moje sekcji kodujak uzyskać wartość bazy danych do tablicy String w Android (sqlite Database)

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

będzie drukować wartość jeden przez one.Now co potrzebne jest, że chcę, aby uzyskać wartości kolumn z bazy danych i tak, że można przechowywać je w tablicy ciągów .

Odpowiedz

25

Już sam dysk ... część rzeczy tablica jest dość prosta:

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

Cokolwiek, zawsze zaleca się stosowanie zbiory w przypadkach tak:

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

W celu porównać tablice, można robić takie rzeczy:

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

dziękuję bro teraz może mi pomóc jeszcze raz mam kolejną tablicę ciągów chcę porównać zarówno wartość w tablicy niech wyjaśnię moją pierwszą tablicę --- String [] ha = {"hello", "hai"}; i Tablica znaków z bazy danych ---- String [] array = {"hello", "hai"}; chcę sprawdzić każdą pozycję obu tablic, jeśli obie są takie same Pozwól mi wprowadzić następną stronę – Ramz

+0

Dobrze, ale jeśli trzeba uzyskać wszystkie wartości kolumny od tylko jednego wiersza do utworzenia tablicy ciągów, jak to zrobić? – Subha

+0

Dziękuję bardzo! to zadziałało dla mnie: 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(); 
     } 

cieszyć się nim

+0

Nie przesuwasz pozycji kursora. – Cristian

0

To jest mój kod, który zwraca ArrayList zawiera nią wartość:

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