0

Android アプリのデータベースで、列の特定のセルの値を更新しようとしていますが、エラーが発生していますNO SUCH COLUMN

データベースハンドラークラスでこのクエリを試していますが、

public void addVote(String politicianname,int vote)
{
    ContentValues values=new ContentValues();
    values.put(KEY_TOTALVOTES, vote);
    db.update(TABLE_POLLINGVOTES, values, KEY_POLITICIANNAMES=politicianname, null);
}

これは私がテーブルを作成しているところです、

String CREATE_POLLINGVOTES_TABLE="CREATE TABLE pollingvotes(politiciannames TEXT, totalvotes NUMERIC)";
db.execSQL(CREATE_POLLINGVOTES_TABLE);

これは、 で名前を追加する場所ですTABLE_POLLINGVOTES

public void addPoliticianNames() //This method is called before calling `addVote` Method
{
    deleteTable();
    String[] a = {"I","Me","Myself"};

    ContentValues values = new ContentValues();
    for (int i = 0; i < a.length; i++)
    {

        values.put(KEY_POLITICIANNAMES, a[i]);
        db.insert(TABLE_POLLINGVOTES, null, values);
    }
}

これが私のLogCatです。

10-31 05:35:45.463: E/AndroidRuntime(1169): FATAL EXCEPTION: main
10-31 05:35:45.463: E/AndroidRuntime(1169): android.database.sqlite.SQLiteException: no such column: I (code 1): , while compiling: UPDATE pollingvotes SET totalvotes=? WHERE I
10-31 05:35:45.463: E/AndroidRuntime(1169):     at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
10-31 05:35:45.463: E/AndroidRuntime(1169):     at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:882)
10-31 05:35:45.463: E/AndroidRuntime(1169):     at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:493)
10-31 05:35:45.463: E/AndroidRuntime(1169):     at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
10-31 05:35:45.463: E/AndroidRuntime(1169):     at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
10-31 05:35:45.463: E/AndroidRuntime(1169):     at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
10-31 05:35:45.463: E/AndroidRuntime(1169):     at android.database.sqlite.SQLiteDatabase.updateWithOnConflict(SQLiteDatabase.java:1563)
10-31 05:35:45.463: E/AndroidRuntime(1169):     at android.database.sqlite.SQLiteDatabase.update(SQLiteDatabase.java:1514)
10-31 05:35:45.463: E/AndroidRuntime(1169):     at com.example.polling.DBAdapter.addVote(DBAdapter.java:134)
10-31 05:35:45.463: E/AndroidRuntime(1169):     at com.example.polling.VotePage.onClick(VotePage.java:42)
10-31 05:35:45.463: E/AndroidRuntime(1169):     at android.view.View.performClick(View.java:4204)
10-31 05:35:45.463: E/AndroidRuntime(1169):     at android.view.View$PerformClick.run(View.java:17355)
10-31 05:35:45.463: E/AndroidRuntime(1169):     at android.os.Handler.handleCallback(Handler.java:725)
10-31 05:35:45.463: E/AndroidRuntime(1169):     at android.os.Handler.dispatchMessage(Handler.java:92)
10-31 05:35:45.463: E/AndroidRuntime(1169):     at android.os.Looper.loop(Looper.java:137)
10-31 05:35:45.463: E/AndroidRuntime(1169):     at android.app.ActivityThread.main(ActivityThread.java:5041)
10-31 05:35:45.463: E/AndroidRuntime(1169):     at java.lang.reflect.Method.invokeNative(Native Method)
10-31 05:35:45.463: E/AndroidRuntime(1169):     at java.lang.reflect.Method.invoke(Method.java:511)
10-31 05:35:45.463: E/AndroidRuntime(1169):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
10-31 05:35:45.463: E/AndroidRuntime(1169):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)

これが私のデータベースの外観です。

ここに画像の説明を入力

どこが間違っているのか、

助けてください、

ありがとう。

4

1 に答える 1

3
db.update(TABLE_POLLINGVOTES, values, KEY_POLITICIANNAMES + "='" + politicianname + "'", null);

=クエリで記号を引用するのを忘れました。

于 2013-10-31T05:57:50.637 に答える