SQLite数据库获取所有记录NullPointerException

2014年

只要添加/删除单行,SQLite数据库就可以正常工作,直到我添加了getAllRecords方法并使其在Oncreate中运行。

我花了很多时间修复它,但是没有运气。

有人可以告诉我我做错了吗?

MySQLite_Database:

    public static final String KEY_ID = "ROW_ID";                   // (0)
    public static final String KEY_ADD_REMOVE = "AddorRemove";      // (1)
    public static final String GROUP_POS = "Group_Position";        // (2)
    public static final String CHILD_POS = "Child_Position";        // (3)
    public static final String DATABASE_TABLE = "Group_Child_Pos_Table";
    public static final String[] ALL_KEYS = new String[] {KEY_ID, KEY_ADD_REMOVE, GROUP_POS, CHILD_POS};

    private static final String POSITION_CREATE_SQL =           
     "CREATE TABLE " + getDatabaseTable() + "("+ 
                                                KEY_ID + " INTEGER PRIMARY KEY," + 
                                                KEY_ADD_REMOVE + " TEXT," + 
                                                GROUP_POS+ " TEXT," + 
                                                CHILD_POS + " TEXT)";   

    private SQLiteDatabase db;
    SQLiteDatabase getWritableDatabase = this.getWritableDatabase();

    public MySQLite_Database(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(CHILD_COUNT_CREATE);
        db.execSQL(POSITION_CREATE_SQL);
    }    

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // on upgrade drop older tables
//        db.execSQL("DROP TABLE IF EXISTS " + CHILD_COUNT_CREATE);
        db.execSQL("DROP TABLE IF EXISTS " + POSITION_CREATE_SQL);
        // create new tables
        onCreate(db);       
    }

主要活动:

private MySQLite_Database MySQLITE_DATABASE;
private SQLiteDatabase  SQLite_database;
private Data_Holder_Class DATA_HOLDER_CLASS;

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

    //Initialize variables here
    MySQLITE_DATABASE = new MySQLite_Database(this);


try {   

Open_SQLITE_DATABASE();
getAllRecords();
}       
catch (Exception e) 
{
   Log.e("ERROR", "ERROROR");
}


public void getAllRecords() {   
Cursor cursor = SQLite_database.query(MySQLite_Database.DATABASE_TABLE, null, null, null, null, null, null);
if(cursor != null)
    {
    while(cursor.moveToNext()){

        String GROUP_POSITION = cursor.getString(cursor.getColumnIndex("GROUP_POS"));
        String CHILD_POSITION = cursor.getString(cursor.getColumnIndex("CHILD_POS"));

        }
    }       

}

非常感谢你

编辑:发布了工作代码。

我终于发现自己做错了...。

这是完整的工作代码。这可能会在将来对其他人有所帮助。

错误代码:

    public void getAllRecords() {   
    Cursor cursor = SQLite_database.query(MySQLite_Database.DATABASE_TABLE, null, null, null, null, null, null);
    if(cursor != null)
        {
        while(cursor.moveToNext()){

            String GROUP_POSITION = cursor.getString(cursor.getColumnIndex("GROUP_POS"));
            String CHILD_POSITION = cursor.getString(cursor.getColumnIndex("CHILD_POS"));

            }
        }       
 }

良好代码:

在MySQLite_Database中:

我创建了这个方法:

public SQLiteDatabase getWritableData() {
    SQLiteDatabase getWritableDatabase = this.getWritableDatabase();
    return getWritableDatabase;
}

在MainActivity中:

MySQLITE_DATABASE = new MySQLite_Database(this);

....

....

public void getAllRecords() {   
Cursor cursor = MySQLITE_DATABASE.getWritableData().query(MySQLite_Database.DATABASE_TABLE, null, null, null, null, null, null);
if(cursor != null)
    {
    while(cursor.moveToNext()){

        String GROUP_POSITION = cursor.getString(cursor.getColumnIndex(MySQLite_Database.GROUP_POS));
        String CHILD_POSITION = cursor.getString(cursor.getColumnIndex(MySQLite_Database.CHILD_POS));

        }
    }       

}

**基本上,在错误代码中,我有

private SQLiteDatabase SQLite_database

并将其用于错误的光标。**光标实际上需要这个

SQLiteDatabase getWritableDatabase = this.getWritableDatabase();

}

感谢大家的帮助,尤其是mmlooloo。mmlooloo确实帮助我发现了另一个错误。我希望我的错误可以帮助其他人。

mmlooloo

更改这些行:

 String GROUP_POSITION = cursor.getString(cursor.getColumnIndex("GROUP_POS"));
 String CHILD_POSITION = cursor.getString(cursor.getColumnIndex("CHILD_POS"));

String GROUP_POSITION = cursor.getString(cursor.getColumnIndex(GROUP_POS));
String CHILD_POSITION = cursor.getString(cursor.getColumnIndex(CHILD_POS));

Cursor cursor = SQLite_database.query(MySQLite_Database.DATABASE_TABLE, null, null, null, null, null, null);

Cursor cursor = MySQLite_Database.query(MySQLite_Database.DATABASE_TABLE, null, null, null, null, null, null);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从数据库获取所有记录到Vaadin表

来自分类Dev

从数据库获取星期一的所有记录

来自分类Dev

仅获取数据库的个人记录,而不是所有记录

来自分类Dev

从sqlite3数据库iOS 7中删除所有记录

来自分类Dev

从SQLite数据库中以相同的最小值获取所有原始数据

来自分类Dev

需要从不知道ID的数据库中获取所有记录

来自分类Dev

是否从quckbooks数据库中获取所有接收付款记录?

来自分类Dev

laravel 获取我的数据库中所有记录的文件名

来自分类Dev

如何在php中使用blob图像获取所有数据库记录

来自分类Dev

Laravel 从数据库中获取所有行记录的总和

来自分类Dev

数据库记录具有所有值

来自分类Dev

从数据库获取最新记录的有效方法

来自分类Dev

如何从Firebase数据库获取所有数据?

来自分类Dev

在Android中打印SQLite数据库的所有行

来自分类Dev

使用SQLite列出数据库中的所有表

来自分类Dev

从sqlite数据库中删除所有表

来自分类Dev

使用SQLite列出数据库中的所有表

来自分类Dev

显示来自sqlite数据库的所有图像

来自分类Dev

没有从数据库中获取所有行

来自分类Dev

没有从数据库中获取所有行

来自分类Dev

没有获取数据库的所有项目

来自分类Dev

从数据库获取给定月份和年份的所有日期的记录,如果数据库中不可用,则为空白

来自分类Dev

Codeigniter活动记录类-从数据库中获取除一个字段外的所有字段

来自分类Dev

尝试从SQLite数据库获取数据时发生NullPointerException / CursorOutOfBoundsException

来自分类Dev

尝试从SQLite数据库获取数据时发生NullPointerException / CursorOutOfBoundsException

来自分类Dev

Android SQLite 数据库导入记录

来自分类Dev

从Redis缓存数据库获取所有密钥

来自分类Dev

从flask-sqlalchemy数据库获取所有模型

来自分类Dev

从不同的数据库获取表的所有列

Related 相关文章

  1. 1

    从数据库获取所有记录到Vaadin表

  2. 2

    从数据库获取星期一的所有记录

  3. 3

    仅获取数据库的个人记录,而不是所有记录

  4. 4

    从sqlite3数据库iOS 7中删除所有记录

  5. 5

    从SQLite数据库中以相同的最小值获取所有原始数据

  6. 6

    需要从不知道ID的数据库中获取所有记录

  7. 7

    是否从quckbooks数据库中获取所有接收付款记录?

  8. 8

    laravel 获取我的数据库中所有记录的文件名

  9. 9

    如何在php中使用blob图像获取所有数据库记录

  10. 10

    Laravel 从数据库中获取所有行记录的总和

  11. 11

    数据库记录具有所有值

  12. 12

    从数据库获取最新记录的有效方法

  13. 13

    如何从Firebase数据库获取所有数据?

  14. 14

    在Android中打印SQLite数据库的所有行

  15. 15

    使用SQLite列出数据库中的所有表

  16. 16

    从sqlite数据库中删除所有表

  17. 17

    使用SQLite列出数据库中的所有表

  18. 18

    显示来自sqlite数据库的所有图像

  19. 19

    没有从数据库中获取所有行

  20. 20

    没有从数据库中获取所有行

  21. 21

    没有获取数据库的所有项目

  22. 22

    从数据库获取给定月份和年份的所有日期的记录,如果数据库中不可用,则为空白

  23. 23

    Codeigniter活动记录类-从数据库中获取除一个字段外的所有字段

  24. 24

    尝试从SQLite数据库获取数据时发生NullPointerException / CursorOutOfBoundsException

  25. 25

    尝试从SQLite数据库获取数据时发生NullPointerException / CursorOutOfBoundsException

  26. 26

    Android SQLite 数据库导入记录

  27. 27

    从Redis缓存数据库获取所有密钥

  28. 28

    从flask-sqlalchemy数据库获取所有模型

  29. 29

    从不同的数据库获取表的所有列

热门标签

归档