簡體   English   中英

檢查行是否存在SQLite

[英]Checking if row exists SQLite

我想檢查Sqlite數據庫中是否存在任何行。

我的java課

public static final String DATABASE_TABLE2 = "receivernumber";
public static final String KEY_ROWID2 = "hpnumberID2";
public static final String KEY_NAME2 = "hpNumber2";

public long insertContact2(String hpNumber2) 
{
    ContentValues initialValues = new ContentValues();
    initialValues.put(KEY_NAME2, hpNumber2);
    if(CheckIsDataAlreadyInDBorNot(0) == true) {

        return db.update(
            DATABASE_TABLE2, initialValues, "SET='"+KEY_NAME2+"'" +"WHERE"+ "KEY_ROWID2="+1, null
        ) > 0;
    }
    else {
        return db.insert(DATABASE_TABLE2, null, initialValues);
    }
    //if there is alrdy a record, create a method to reject intake
    return 0;
}


public boolean CheckIsDataAlreadyInDBorNot(long hpnumberID) {

    Cursor mCursor = db.query(
        true, DATABASE_TABLE2, new String[] {KEY_ROWID, KEY_NAME},KEY_ROWID + "=" + hpnumberID, null, null, null, null, null
    );
    String Query = "Select * from " + DATABASE_TABLE2 + " where " + KEY_ROWID2 + " < " + 0;
    SQLiteDatabase sqldb = EGLifeStyleApplication.sqLiteDatabase;
    Cursor cursor = sqldb.rawQuery(Query, null);     

    if(cursor.getCount<=0) return false;

    return true;
}


public boolean updateContact2(long hpnumberID2, String hpNumber2) 
{
    ContentValues args = new ContentValues();
    args.put(KEY_NAME2, hpNumber2);

        //args.put(KEY_NAME3, Selected);
        //return db.update(DATABASE_TABLE2, args, KEY_ROWID2 + "=" + hpnumberID2, null) > 0;
        //db.execSQL("UPDATE " + DATABASE_TABLE2 + " SET " + KEY_NAME2 + " WHERE " +   KEY_ROWID2 + "=1 ");

    return db.update(DATABASE_TABLE2, args, "SET='" + KEY_NAME2 + "'" + "WHERE" + "KEY_ROWID2=" + 1, null) > 0;
}

因此,我的數據庫布局使用戶只能第一次添加數字。 隨后,用戶希望添加一個數字,它將被一個編輯功能代替。 但是,存在一個名為EGLifeStyleApplication的錯誤,無法將其解析為變量。 但是,由於這是成功解決問題的答案,因此他們並未真正解釋EGLifeStyleApplications的功能是什么。 那么我該如何去做自己想實現的目標? (如何編輯我的插入語句)謝謝。

用替換違規行

sqldb = ctx.openOrCreateDatabase(DB_NAME, Context.MODE_PRIVATE, null);

其中ctx是上下文,您將作為參數傳遞給CheckIsDataAlreadyInDBorNot方法。 即:

public boolean CheckIsDataAlreadyInDBorNot(Context ctx, long hpnumberID) {

DB_NAME是包含您的數據庫名稱的字符串,即:

private final static String DB_NAME = "rec_nums.db";

public static final String DATABASE_TABLE2 = "receivernumber";
public static final String KEY_ROWID2 = "hpnumberID2";
public static final String KEY_NAME2 = "hpNumber2";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM