0

SQLite データベースの「整数」フィールドに 1 を追加して更新しようとしています。そうですX = X+1

以下は私のコードです

  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 で機能するかどうかはわかりません。コードが何も更新されないのはなぜですか?

4

1 に答える 1

3

where句に余分な「スペース」があると思います:

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

したがって、次のように置き換えます。

where EnglishWord = '"+(facedWords.get(i)).trim()+"'"
于 2013-08-12T07:19:08.883 に答える