SQLite数据库不显示所有记录

时间:2016-12-12 11:27:26

标签: android database sqlite android-sqlite

我创建了一个SQLite数据库。它没有显示所有记录:它只提供一条记录 我插入了多条记录,但数据库只播放了一条记录。

show record方法仅显示最后插入的记录 我想显示保存在数据库中的所有记录。

记录已成功添加。

import android.content.Context;

import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

import android.widget.TextView;




public class ViewPeople extends AppCompatActivity {
    private TextView textViewName;

    private static final String SELECT_SQL = "SELECT * FROM persons";

    private SQLiteDatabase db;

    private Cursor c;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_view_people);
        openDatabase();

        textViewName = (TextView) findViewById(R.id.textViewName);




        c = db.rawQuery(SELECT_SQL, null);
        c.moveToFirst();
        showRecords();
    }

    protected void openDatabase() {
        db = openOrCreateDatabase("PersonDB", Context.MODE_PRIVATE, null);
    }

    protected void showRecords() {

        String name = c.getString(1);
        textViewName.setText(name);



    }

3 个答案:

答案 0 :(得分:2)

您需要在循环中获取数据。

if (c.moveToFirst()){
   do{
       String name = c.getString(1);
      // do what ever you want here
   }while(c.moveToNext());
}
c.close();

答案 1 :(得分:0)

使用此lib在运行时查看数据库。

com.amitshekhar.android:debug-db:0.4.0

并查看所有记录,您必须使用此代码。

if (cursor.moveToFirst()) { do { tvName.setText(cursor.getString(0)); } while (cursor.moveToNext());

答案 2 :(得分:-1)

这不是错误,但默认情况下,Sqlite只返回一条记录。如果想要所有记录,那么你需要使用循环来完成它。

尝试执行以下操作,删除 c.moveToFirst();         showRecords(); 并添加以下代码。

while(c.moveToNext()){
   showRecords();
}

并在showRecords方法中删除 textViewName.setText(name); 并添加textViewName.append(name +“\ n”);

相关问题