2011-09-17 64 views
1

我是新來的android ...我開發了一個數據庫應用程序,我能插入文本字段的細節,但我想刪除特定的行,我需要按名稱搜索並刪除用戶。如何從數據庫中刪除一行Android

有人可以幫助我在此:

我的DB的代碼是:

public void deleteRow(String firstname) 
{ 

    try {db.delete(TABLE_NAME,TABLE_ROW_ONE + "=?" + new String[]{firstname},null);} 
    catch (Exception e) 
    { 
     Log.e("DB ERROR", e.toString()); 
     e.printStackTrace(); 
    } 
} 

Activty代碼:

deleteButton.setOnClickListener ( 新View.OnClickListener(){ @Override public void onClick(View v){deleteRow();} } );

私人無效deleteRow(){ 嘗試 {

 db.deleteRow(textFieldOne.getText().toString()); 


     updateTable(); 


     emptyFormFields(); 
    } 
    catch (Exception e) 
    { 
     Log.e("Delete Error", e.toString()); 
     e.printStackTrace(); 
    } 
} 

textFieldOne是用戶的名字。

有人可以幫助我在這個..

+0

爲什麼你不使用標準的SQL查詢? – terrygarcia

回答

0

從您的刪除方法刪除空參數... 做這樣---->

db.delete(TABLE_NAME,TABLE_ROW_ONE +「= ?「+ new String [] {firstname});

它會正常工作......

0

我認爲你誤解的安卓+源碼?目的。

?用作佔位符,然後將其替換爲您作爲第三個參數傳遞的字符串,以便在Android上刪除和其他類似的數據庫函數。

在您的代碼中,您將選擇參數設置爲選擇字符串和選擇參數字符串數組的組合。

/* ... */ TABLE_ROW_ONE + "=?" + new String[]{firstname},null); 

更改代碼

/* ... */ TABLE_ROW_ONE + "=?", new String[]{firstname}); 

應該做的伎倆。

你也可以說

db.delete(TABLE_NAME, TABLE_ROW_ONE + "='" + firstname + "'", null); 

,如果你想,但?的目的是做一些與查詢緩存,因此他們會更快的下一次會。

+0

嘿感謝很多傢伙,但沒有爲我工作.. –

+0

嘿感謝很多傢伙,但沒有爲我工作..公共無效deleteRow(字符串名字) \t { \t \t //查詢數據庫管理器中刪除指定id \t \t嘗試的行{ \t \t \t \t \t \t db.delete(TABLE_NAME,TABLE_ROW_ONE + 「=」 + firstname,null); \t \t \t \t \t \t } \t \t \t趕上(例外五) \t \t { \t \t \t Log.e( 「DB ERROR」,e.toString()); \t \t \t e.printStackTrace(); \t \t} \t} –

+0

當我按行ID刪除它,它被刪除,但我想通過名稱來搜索並刪除......但是這是不會發生.. –