在清除应用程序数据模拟器后数据插入失败

时间:2017-09-07 12:00:33

标签: android sqlite

从EditText在SQlite中插入数据

代码在我从模拟器中删除数据之前运行良好现在它给了我Null Pointer Exception,请说明实际问题所在。感谢

Data is being inserted from here ]

public long insert(String name, String password, String role, String unique) { 
    sqLiteDatabase = this.getWritableDatabase(); 
    ContentValues contentValues = new ContentValues();
    contentValues.put(KEY_USERNAME, name);
    contentValues.put(KEY_PASSWORD, password); 
    contentValues.put(KEY_ROLE, role); 
    contentValues.put(KEY_UNIQUE, unique); 
    long result = sqLiteDatabase.insert(DOCTOR_TABLE, 
        null, 
        contentValues); 
    sqLiteDatabase.close(); 
    return result; 
} 

SQLite Database class

1 个答案:

答案 0 :(得分:0)

好。这是显而易见的。 正如您所提到的,您已经擦除了数据,因此位于Android应用程序自己的数据文件夹中的表也将被删除。所以你必须检查它是否存在。

调用以使表返回null。 所以你把你的价值插入到任何东西。 因此,您可以更改代码以查看表是否存在以及是否创建表。 基本上你只是打电话, CREATE TABLE IF NOT EXISTS method(SQLite 3.3及更高版本支持IF NOT EXISTS)。当您第一次调用它时,如果不存在,它将创建该表,但稍后它将返回具有相同名称的现有表。

在一行中 - 在进行任何操作之前检查或获取正确的表格。