从sqlite数据库检索数据时遇到问题我需要的是在控制台上检索所有数据。但我在控制台上只得到一行数据 这是从Sqlite插入和检索数据的代码。请说明我遗漏或做错了什么。谢谢你的帮助。
print "".join([str(i) for i in range(1,int(raw_input())+1)])
Contacts.java
print(*range(1,int(raw_input())+1),sep='')
答案 0 :(得分:0)
public Contacts retriveContactsDetails() {
...
while (cursor.isAfterLast() == false) {
...
cursor.moveToNext();
return new Contacts(...);
}
您的Contacts
类名称错误,因为它只包含一个联系人。它应该命名为Contact
。
return
语句执行它所说的内容,它从函数返回。所以循环体不能执行多次。
您实际想要做的是构建联系人列表,在每次循环迭代中将一个联系人对象添加到列表中,并在结尾返回该列表。
答案 1 :(得分:0)
您应该将retriveContactsDetails()
更改为:
public List<Contacts> retriveContactsDetails() {
SQLiteDatabase db = this.getReadableDatabase();
String[] columns = new String[]{KEY_IMAGE, KEY_BABY_NAME, KEY_GENDER, KEY_SET_DATE, KEY_SET_TIME};
List<Contacts> contactsList = new ArrayList<>();
Cursor cursor;
try {
cursor = db.query(TABLE_NAME, columns, null, null, null, null, null);
while(cursor.moveToNext()) {
byte[] blob = cursor.getBlob(cursor.getColumnIndex(KEY_IMAGE));
String name = cursor.getString(cursor.getColumnIndex(KEY_BABY_NAME));
String gender = cursor.getString(cursor.getColumnIndex(KEY_GENDER));
String date = cursor.getString(cursor.getColumnIndex(KEY_SET_DATE));
String time = cursor.getString(cursor.getColumnIndex(KEY_SET_TIME));
contactsList.add(new Contacts(DbUtility.getImage(blob), name, gender, date, time));
Log.d(TAG, DbUtility.getImage(blob) + name + "-" + gender + "-" + date + "- " + time);
}
} catch (Exception ex) {
// Handle exception
} finally {
if(cursor != null) cursor.close();
}
return contactsList;
}
此外,您的Contacts
类应命名为Contact
,因为它只包含您对象的单个实例。