Java 查询未正确运行-SQlite Android Studio
我有一个函数,它应该将数据插入SQlite DB,如果没有插入数据,则返回false,但是函数返回true,但是当我检查.DB文件时,表中没有数据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
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();
}
}