2016-05-12 23 views
2

嘿,我一直在努力为我的大学的Android项目工作,但我坚持在这一点上。我想从表students中提取所有行,将它们填充到ArrayList中,然后使用ListViewCardView来显示每个学生的记录。这是我正在使用的代码:如何获取表SQLite中的所有行?

public ArrayList<String> getStudentsEntry() 
    { 

     ArrayList<String> arrayList = new ArrayList<>(); 

     Cursor cursor = db.query("STUDENT", ALL_COLUMN_NAME, null, null, null, null, null); 
     if(cursor.getCount()<1) // UserName Not Exist 
     { 
      cursor.close(); 
      return null; 
     } 
     cursor.moveToFirst(); 
     while(cursor.isAfterLast()) { 
      String name = cursor.getString(cursor.getColumnIndex("NAME")); 
      String enrollment = cursor.getString(cursor.getColumnIndex("ENROLLMENT")); 
      String year = cursor.getString(cursor.getColumnIndex("YEAR")); 
      String dob = cursor.getString(cursor.getColumnIndex("DOB")); 
      String email = cursor.getString(cursor.getColumnIndex("EMAIL")); 
      String caste = cursor.getString(cursor.getColumnIndex("CASTE")); 
      String fname = cursor.getString(cursor.getColumnIndex("FNAME")); 
      String mname = cursor.getString(cursor.getColumnIndex("MNAME")); 
      String address = cursor.getString(cursor.getColumnIndex("ADDRESS")); 
      String contact = cursor.getString(cursor.getColumnIndex("CONTACT")); 

      arrayList.add(name); 
      arrayList.add(enrollment); 
      arrayList.add(year); 
      arrayList.add(dob); 
      arrayList.add(email); 
      arrayList.add(caste); 
      arrayList.add(fname); 
      arrayList.add(mname); 
      arrayList.add(address); 
      arrayList.add(contact); 

     } 
     return arrayList; 
    } 

它没有返回任何东西。我无法从数据库中获取数据。数组大小为零:

Caused by: java.lang.IndexOutOfBoundsException: Invalid index 1, size is 0 

在java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:25

请帮我家伙,我是新来的这个东东

+0

这是一个不同恩方案有@ShreeKrishna ..我无法从数据库中检索数据.. –

回答

2

它不是while(cursor.isAfterLast())应该while(!cursor.isAfterLast())或者根本

while (cursor.moveToNext()) { 
    ... 
} 
+0

感谢@克里希纳@工作! :-)只是做了'cursor.moveToNext' –

1
ArrayList<String> arrayList = new ArrayList<>(); 

Cursor cursor = database.query("STUDENT", ALL_COLUMN_NAME, null, null, null, null, null); 
if(cursor.getCount()<1) // UserName Not Exist 
{ 
    cursor.close(); 
    return null; 
} 
cursor.moveToFirst(); 
while(!cursor.isAfterLast()) { 
    for (int column = 0; column < cursor.getColumnCount(); column ++) { 
     arrayList.add(cursor.getString(column));  
    } 
} 
return arrayList; 
相关问题