2016-02-18 60 views
-2

我想從sqlite數據庫更新一些值。如果我更新一列值正確,當我嘗試更新沒有主鍵的多個值,然後我的活動使terminate.i將感激如果能夠知道這個錯誤的原因。ANDROID SQLITE-多個更新的錯誤

我的示例代碼:

這段代碼運行良好(在這裏我只對列的更新)

private void updateData(){ 
      String fullName= editText_fullName.getText().toString(); 
          String emailAddress= editText_emailAddress.getText().toString(); 
          String mobileNo= editText_mobileNo.getText().toString(); 
          String address= editText_address.getText().toString(); 
          String voiceCode=button_tackeVoice.getText().toString(); 
          String password=editText_password.getText().toString(); 
      final SQLiteDatabase myDB = openOrCreateDatabase(FeedReaderDbHelper.DATABASE_NAME, MODE_PRIVATE, 
     null); 
      updateStringData(myDB, FeedReaderDbHelper.FULL_NAME, fullName); 


      } 
    private void updateStringData(SQLiteDatabase myDB,String columnName,String data){ 
        try { 

         String strSQL = "UPDATE user SET "+columnName+" ='"+data+"' WHERE userName = '"+ userData.userName+"'"; 

         myDB.execSQL(strSQL); 
         myDB.close(); 

        }catch (android.database.sqlite.SQLiteConstraintException ex) { 

        } 
       } 

此代碼可怕的:(我在這裏要更新多列)

private void updateData(){ 
    String fullName= editText_fullName.getText().toString(); 
        String emailAddress= editText_emailAddress.getText().toString(); 
        String mobileNo= editText_mobileNo.getText().toString(); 
        String address= editText_address.getText().toString(); 
        String voiceCode=button_tackeVoice.getText().toString(); 
        String password=editText_password.getText().toString(); 
    final SQLiteDatabase myDB = openOrCreateDatabase(FeedReaderDbHelper.DATABASE_NAME, MODE_PRIVATE, null); 
    updateStringData(myDB, FeedReaderDbHelper.FULL_NAME, fullName); 
         updateStringData(myDB,FeedReaderDbHelper.EMAIL_ADDRESS,emailAddress); 
         updateStringData(myDB,FeedReaderDbHelper.MOBILE_NO,mobileNo); 
         updateStringData(myDB,FeedReaderDbHelper.ADDRESS,address); 
         updateStringData(myDB,FeedReaderDbHelper.VOICE_CODE,voiceCode); 
         updateStringData(myDB,FeedReaderDbHelper.USER_PASSWORD,password); 
    } 
     private void updateStringData(SQLiteDatabase myDB,String columnName,String data){ 
      try { 

       String strSQL = "UPDATE user SET "+columnName+" ='"+data+"' WHERE userName = '"+ userData.userName+"'"; 

       myDB.execSQL(strSQL); 
       myDB.close(); 

      }catch (android.database.sqlite.SQLiteConstraintException ex) { 

      } 
     } 
+1

嘗試移動myDB.close();畢竟updateStringData(...); – aletede91

+0

謝謝,將myDB.close()移到updateData()的底部後,我的問題仍然存在。 –

+0

你會得到什麼錯誤?有多少SQL更新不起作用?你的日誌中有異常嗎? – aletede91

回答

0

你的userData對象在哪裏?您可以設置調試點並調試您的應用程序以檢查是否有任何問題。

+0

(這裏是,我正在改變它的價值,從另一類。)。公共類userData {0} public static String userName =「」; public static String FullName =「」; public static String Email =「」; public static String Address =「」; public static String MobileNo =「」; public static byte [] userPhoto = new byte [0]; public static String voiceCode =「」; public static String password =「」; } –

+0

在您的查詢中設置一個調試點,並嘗試對其進行調試@KmMuzahid。 – zeeali

+0

謝謝,我的問題已解決... –