クエリが正常に動作していない - SQLiteのAndroidのメーカー

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();
    }
}

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=407399&siteId=1