2012-01-25 37 views
6

Tôi có một tên cơ sở dữ liệu "cued" (Android sqlite) nó có một bảng Hello có chứa một cột TÊN tôi có thể nhận được giá trị thành Chuỗi từ cột đó. Hãy để tôi cho bạn thấy phần mã của tôilàm thế nào để có được giá trị cơ sở dữ liệu vào một mảng String trong android (Cơ sở dữ liệu 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); 
} 

Nó sẽ in giá trị từng one.Now những gì tôi cần là tôi muốn nhận được các giá trị cột từ cơ sở dữ liệu và vì vậy mà tôi có thể lưu trữ nó trong một String Mảng .

Trả lời

25

Bạn đã làm phần cứng ... những thứ mảng là khá đơn giản:

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

Dù, tôi luôn khuyên bạn nên sử dụng các bộ sưu tập trong những trường hợp như thế này:

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

Để so sánh các mảng, bạn có thể làm những việc như sau:

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

cảm ơn bạn bro bây giờ có thể giúp tôi một lần nữa tôi có một mảng chuỗi tôi muốn so sánh cả về giá trị trong mảng để tôi giải thích mảng đầu tiên của tôi --- String [] ha = {"hello", "hai"}; và chuỗi mảng từ cơ sở dữ liệu ---- Chuỗi [] array = {"hello", "hai"}; tôi muốn kiểm tra từng vị trí của cả hai mảng nếu cả hai đều giống nhau cho phép tôi nhập trang tiếp theo – Ramz

+0

Tốt, nhưng nếu cần để có được tất cả các giá trị cột từ chỉ một hàng để tạo thành mảng chuỗi có nghĩa là làm thế nào để làm gì? – Subha

+0

Cảm ơn bạn rất nhiều !!! nó làm việc cho tôi: 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(); 
     } 

Thưởng thức nó

+0

Bạn không di chuyển vị trí con trỏ. – Cristian

0

Đây là mã của tôi mà trả về ArrayList chứa vùng xa giá trị:

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; 
} 
Các vấn đề liên quan