2013-08-12 3 views
0

Я пытаюсь обновить поля «integer» в базе данных SQLite, добавив 1 к нему. Так что X = X+1Не удалось обновить поле Integer в базе данных SQLite

Ниже мой код

public synchronized void updateStatistics(List<String> correctWords, 
      List<String> facedWords, int wordListNumber, boolean flag) { 
     // TODO Auto-generated method stub 
     String[] tableLastNames= {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"}; 

     String tableName = "WordList_"+tableLastNames[wordListNumber]; 


     if(flag) 
     { 
      //First update 'FacedWords' row 

      Toast.makeText(context, "Faced Words Length: "+facedWords.size(), Toast.LENGTH_LONG).show(); 
      Toast.makeText(context, "Correct Words Length: "+correctWords.size(), Toast.LENGTH_LONG).show(); 

      try 
      { 
       for(int i=0;i<facedWords.size();i++) 
       { 
        String query = "update "+ tableName+" set NumberOfTimesEnglishWordShowed=NumberOfTimesEnglishWordShowed+1 where EnglishWord = ' "+(facedWords.get(i)).trim()+"'"; 
        database.execSQL(query); 
       } 

       for(int i=0;i<correctWords.size();i++) 
       { 
        String query = "update "+ tableName+" set NumberOfTimesEnglishWordCorrected=NumberOfTimesEnglishWordCorrected+1 where EnglishWord = ' "+(facedWords.get(i)).trim()+"'"; 
        database.execSQL(query); 
       } 

       //Toast.makeText(context, "Updated Word: "+, duration) 
      } 
      catch(Exception e) 
      { 
       Toast.makeText(context, "Update error", Toast.LENGTH_LONG).show(); 
      } 

     } 



    } 

Я использую SQLite браузер базы данных, чтобы увидеть вещи в моей базе данных, и я заметил, что приведенный выше код не обновляется ничего! И ошибок нет! В случае, если вам необходимо, следуя является обязательной частью из таблицы

String createDatabaseQuery = "create table WordList_A(" + 
        "ID integer primary key autoincrement," 
        +"NumberOfTimesEnglishWordShowed integer," 

        +"NumberOfTimesEnglishWordCorrected integer,");"; 

Запрос обновления я похож на запрос обновления MS SQL, так что я не уверен в том, что способ работает с SQLite. Почему мой код ничего не обновляет?

Пожалуйста, помогите

+2

Является ведущим пространство в '» «+ (faceWords.get (i)). trim() + "'' специально? Это кажется неправильным ... –

+0

@Heuster: Отлично! Это оно! Спасибо! Поскольку вы впервые обнаружили проблему, я хотел бы отметить ваш ответ в качестве ответа. Пожалуйста, будьте любезны, чтобы ответить на ваш вопрос как ответ –

+2

Tnx, но просто отметьте другой ответ, как принято. Это не конкурс :) –

ответ

4

Я думаю, что у вас есть дополнительное "пространство" в вашем где предложение:

where EnglishWord = ' "+(facedWords.get(i)).trim()+"'" 

так заменить его:

where EnglishWord = '"+(facedWords.get(i)).trim()+"'" 
+0

Здравствуйте, Большое спасибо за ответ. Оно работает! Я уже дал вам +1 –

+0

ваш добро пожаловать и за +1, удачи –

Смежные вопросы