没有这样的列错误

时间:2013-10-31 05:50:46

标签: android sqlite

在我的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)

这是我的数据库的外观,

enter image description here

我错了,

请帮忙,

感谢。

1 个答案:

答案 0 :(得分:3)

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

您忘记在查询中引用=符号。

相关问题