Tavian T:
私は、データがしかし、関数がリターンが真挿入されませんが、私は.DBファイルをチェックするために行くとき、テーブルにはデータがありません場合はSQLiteの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;
}
テーブルとデータベースが正しく作成されていることを示して下の画像。
devgianlu:
あなたは呼び出す必要があります#beginTransaction()
、#setTransactionSuccessful()
と#endTransaction()
説明したように、ここで。
任意のトランザクションが(setTransactionSuccessfulを呼び出すことによって)クリーンとしてマークされずに終了した場合、変更はロールバックされます。
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();
}
}