2013-07-29 181 views
-1

我知道這個問題已經以許多不同的方式在本網站上被詢問過很多次,但似乎沒有一個適合我。 我需要將數據從活動更新到我的數據庫。 我用這個代碼:更新SQLite數據庫中的數據

public class EditAccount extends Activity { 

private SQLiteDatabase database; 
    private MySQLiteHelper dbHelper; 
...... 
} 
public void update_acc(View view){ 
     EditText accName=(EditText)findViewById(R.id.acc_name); 
     EditText comment=(EditText)findViewById(R.id.comments); 
     String acc_name=accName.getText().toString(); 
     String comments=comment.getText().toString(); 
     Intent intent=getIntent(); 
     int id =(int) intent.getExtras().getLong("data_id"); 
     String data_id= Integer.valueOf(id).toString(); 

     //When i debug the app it comes here and stops: 
     database = dbHelper.getWritableDatabase(); 
     database.execSQL("Update comments set acc_name='"+acc_name+"', 
    comment='"+comments+"' where id="+id, null); 
     database.close(); 
     Toast.makeText(getBaseContext(), "Account updated; Acc Name:"+acc_name+" Comment:"+comments, Toast.LENGTH_LONG).show(); 
     super.onBackPressed();} 

請看一看,看看是否有任何問題。 請幫忙!

由於提前, 等待你的答覆...

+1

請說一下你的錯誤觀光或者爲什麼它不工作是,如果有一個logcat中的錯誤請發帖 – Boardy

+0

你正在初始化dbHelper嗎? –

+0

如何從logCat中獲取錯誤? –

回答

1

它做過這樣的:

 EditText accName=(EditText)findViewById(R.id.acc_name); 
     EditText comment=(EditText)findViewById(R.id.comments); 
     String acc_name=accName.getText().toString(); 
     String comments=comment.getText().toString(); 
     Intent intent=getIntent(); 
     int id =(int) intent.getExtras().getLong("data_id"); 
     String data_id= Integer.valueOf(id).toString(); 

     database = dbHelper.getWritableDatabase(); 
      String query="Update comments set acc_name='"+acc_name+"', comment='"+comment+"' where _id="+id; 
      database.execSQL(query); 

     //Leave a message and go back 
     Toast.makeText(getBaseContext(), "Account updated; Acc_name:"+acc_name+", Comment:"+comments, Toast.LENGTH_LONG).show(); 
     super.onBackPressed();