在 SQLite INSERT 命令中实现 WHERE - Android Studio

Implementing WHERE in an SQLite INSERT command - Android Studio

我熟悉 Oracle SQL/PL,但不熟悉 SQLite,我设法通过加法操作构建了我的数据库。但是,我想知道如何实现 WHERE 条件以便稍后将数据添加到特定行。 这是我的附加代码:

public void putInformation(DatabaseOperations dop, String name, String pass, String email){
    SQLiteDatabase SQ = dop.getWritableDatabase();
    ContentValues cv = new ContentValues();
    cv.put(TableData.TableInfo.USER_NAME, name);
    cv.put(TableData.TableInfo.USER_PASS, pass);
    cv.put(TableData.TableInfo.USER_EMAIL, email);
    long k = SQ.insert(TableData.TableInfo.TABLE_NAME,null, cv);
    Log.d("Database Operations", "One Raw Inserted");
}

我认为您正在寻找更新查询:

public void updateInformation(DatabaseOperations dop, String name, String pass, String email){
    SQLiteDatabase SQ = dop.getWritableDatabase();
    ContentValues cv = new ContentValues();
    cv.put(TableData.TableInfo.USER_NAME, name);
    cv.put(TableData.TableInfo.USER_PASS, pass);
    cv.put(TableData.TableInfo.USER_EMAIL, email);
    long k = SQ.update(TableData.TableInfo.TABLE_NAME, cv, TableData.TableInfo.USER_NAME+"=?",new String[]{name});
    Log.d("Database Operations", k+" Rows Updated");
}

SQLiteDatabase.update docs

WHERE condition for adding data later on to a specific row。如果我理解正确,那么它将更新为 sqlite 数据库。为此,您可以参考下面的代码。

public void updateInformation(DatabaseOperations dop, String name, String pass, String email){
    SQLiteDatabase SQ = dop.getWritableDatabase();
    ContentValues cv = new ContentValues();
    cv.put(TableData.TableInfo.USER_NAME, name);
    cv.put(TableData.TableInfo.USER_PASS, pass);
    cv.put(TableData.TableInfo.USER_EMAIL, email);
    long index = SQ.update(TableData.TableInfo.TABLE_NAME, cv, TableData.TableInfo.USER_NAME+"=?", new String[] {name});
}

您不能在插入查询中使用 WHERE 条件。 WHERE condition for adding data later on to a specific row. 为此,您可以使用 UPDATE 查询。

链接:

http://www.tutorialspoint.com/sqlite/sqlite_update_query.htm

http://android-er.blogspot.in/2011/06/edit-row-in-sqlite-database-using.html