Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 查询未正确运行-SQlite Android Studio_Java_Sqlite_Android Studio - Fatal编程技术网

Java 查询未正确运行-SQlite Android Studio

Java 查询未正确运行-SQlite Android Studio,java,sqlite,android-studio,Java,Sqlite,Android Studio,我有一个函数,它应该将数据插入SQlite DB,如果没有插入数据,则返回false,但是函数返回true,但是当我检查.DB文件时,表中没有数据 public boolean insertData(String name, String emailAddress, String postalAddress, String password, int phoneNumber, String bloodType) { ContentValues contentValues = new Co

我有一个函数,它应该将数据插入SQlite DB,如果没有插入数据,则返回false,但是函数返回true,但是当我检查.DB文件时,表中没有数据

public boolean insertData(String name, String emailAddress, String postalAddress, String password, int phoneNumber, String bloodType) {
    ContentValues contentValues = new ContentValues();
    SQLiteDatabase db = this.getWritableDatabase();

    //set data to columns
    contentValues.put(COL_2, name);
    contentValues.put(COL_3, emailAddress);
    contentValues.put(COL_4, postalAddress);
    contentValues.put(COL_5, password);
    contentValues.put(COL_6, phoneNumber);
    contentValues.put(COL_7, bloodType);

    //inserts data into db
    long result = db.insert(TABLE_NAME, null, contentValues);

    //checks to see if data has been inserted correctly
    if (result == -1) {
        return false;
    } else
        return true;


}
下图显示已正确创建表和数据库

您应该调用
#beginTransaction()
#setTransactionSuccessful()
#endTransaction()
,如前所述

如果任何事务结束时未标记为干净(通过调用setTransactionSuccessful),则将回滚更改


当我检查.db文件时,表中没有数据。从设备中提取的不仅是数据库文件,还有2个文件的名称以-wal和-shm结尾。将所有3个文件放在一个文件夹中,然后打开数据库。@forpas我在目录中找不到这些文件,然后尝试从设备上卸载应用程序,然后重新运行,或者更好地尝试使用干净的设备。这样做不起作用,表中仍然没有任何内容
public boolean insertData(String name, String emailAddress, String postalAddress, String password, int phoneNumber, String bloodType) {
    ContentValues contentValues = new ContentValues();
    SQLiteDatabase db = this.getWritableDatabase();

    db.beginTransaction();
    try {
        contentValues.put(COL_2, name);
        contentValues.put(COL_3, emailAddress);
        contentValues.put(COL_4, postalAddress);
        contentValues.put(COL_5, password);
        contentValues.put(COL_6, phoneNumber);
        contentValues.put(COL_7, bloodType);
        long result = db.insert(TABLE_NAME, null, contentValues);
        db.setTransactionSuccessful();
        return result != -1;
    } finally {
        db.endTransaction();
    }
}