首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在SQLite中插入和检索数据?

如何在SQLite中插入和检索数据?
EN

Stack Overflow用户
提问于 2019-03-31 23:38:07
回答 2查看 76关注 0票数 1

我已经写了一个应用程序,我必须将其数据插入到sqlite数据库中,并在一个活动中显示它。但是我的代码显示“没有找到记录”,即使我已经插入了它。

我尝试过使用不同的选项,比如先将光标移动到第一个记录,然后在记录上使用循环迭代。

将数据插入到数据库中

代码语言:javascript
复制
private void saveToDB() {
        SQLiteDatabase database = new ChildMonitoringAppDBHelper(this).getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put(ChildMonitoringAppDBHelper.CHILD_NAME, name.getText().toString());
        values.put(ChildMonitoringAppDBHelper.CHILD_AGE, age.getText().toString());
        values.put(ChildMonitoringAppDBHelper.CHILD_DOB, dob.getText().toString());
        values.put(ChildMonitoringAppDBHelper.CHILD_HEIGHT, height.getText().toString());
        values.put(ChildMonitoringAppDBHelper.CHILD_WEIGHT, weight.getText().toString());
        database.insert(ChildMonitoringAppDBHelper.CHILD_TABLE_NAME, null, values);
        database.close();   
    }

从数据库中检索数据

代码语言:javascript
复制
public ArrayList<Child> readFromDB()
    {
        ArrayList<Child> List = new ArrayList<>();
        SQLiteDatabase database = new ChildMonitoringAppDBHelper(this).getReadableDatabase();
        Cursor cursor = database.rawQuery("select * from " + ChildMonitoringAppDBHelper.CHILD_TABLE_NAME, null);
        cursor.moveToFirst();
        while(!cursor.isAfterLast())
        {
            Child child = new Child(cursor.getString(cursor.getColumnIndex("CHILD_NAME")), cursor.getString(cursor.getColumnIndex("CHILD_AGE")), cursor.getString(cursor.getColumnIndex("CHILD_DOB")), cursor.getString(cursor.getColumnIndex("CHILD_HEIGHT")), cursor.getString(cursor.getColumnIndex("CHILD_WEIGHT")));
            List.add(child);
            cursor.moveToNext();
        }
        cursor.close();
        return List;
    }

它应该显示输入的记录,但它正在制作吐司"No record found“。

EN

回答 2

Stack Overflow用户

发布于 2019-03-31 23:48:50

代码语言:javascript
复制
    Cursor cursor = database.rawQuery("select * from " + ChildMonitoringAppDBHelper.CHILD_TABLE_NAME, null);
    if (cursor.moveToFirst())
    {
        do {
            Child child = new Child(cursor.getString(cursor.getColumnIndex("CHILD_NAME")), cursor.getString(cursor.getColumnIndex("CHILD_AGE")), cursor.getString(cursor.getColumnIndex("CHILD_DOB")), cursor.getString(cursor.getColumnIndex("CHILD_HEIGHT")), cursor.getString(cursor.getColumnIndex("CHILD_WEIGHT")));
            List.add(child);
        } while (cursor.moveToNext());
    }
    cursor.close();
    return List;

你能不能试一下这段代码,看看它是否对你有用?

票数 0
EN

Stack Overflow用户

发布于 2019-03-31 23:58:30

代码语言:javascript
复制
  public ArrayList<Child> readFromDB() 
   {
  List list = new ArrayList<Child>(); 
  Cursor cursor = database.rawQuery("select * from " + 
  ChildMonitoringAppDBHelper.CHILD_TABLE_NAME, null);
  SQLiteDatabase database = this.getWritableDatabase(); 
  Cursor cursor = database.rawQuery(selectQuery, null); 
  if (cursor.moveToFirst())
  {  
  do
  {
 Child child = new Child(cursor.getString(cursor.getColumnIndex("CHILD_NAME")), 
 cursor.getString(cursor.getColumnIndex("CHILD_AGE")), 
 cursor.getString(cursor.getColumnIndex("CHILD_DOB")), 
 cursor.getString(cursor.getColumnIndex("CHILD_HEIGHT")), 
 cursor.getString(cursor.getColumnIndex("CHILD_WEIGHT")));

 list.add(child);
 } 
 while (cursor.moveToNext());
 }
cursor.close(); 
// return list of inserted values
return list; 
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55442545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档