2014-02-10 60 views
0

我想檢查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的功能。那麼,我該如何去做我想做的事呢? (如何編輯我的插入語句)謝謝。

回答

0

更換有問題的行與

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";