Android sqlite insert命令出错了

时间:2017-03-08 11:13:13

标签: android sqlite android-sqlite

这是我创建表的代码

    database.execSQL("CREATE TABLE IF NOT EXISTS RNOTIFICATIONS(Position VARCHAR PRIMARY KEY NOT NULL,message VARCHAR, title VARCHAR, iconof VARCHAR);");

和插入数据功能是

public void insert_new_item(String n_message, String n_title,String n_icon) {
    SQLiteDatabase database = this.getWritableDatabase();
    String rows= String.valueOf((int)DatabaseUtils.queryNumEntries(database, "RNOTIFICATIONS"));
    ContentValues values = new ContentValues();
    values.put("Position",rows+1);
    values.put("message", n_message);
    values.put("title", n_title);
    values.put("iconof",n_icon);
    database.insert("RNOTIFICATIONS", null, values);
    database.close();
}

INPUT:insert_new_item(hi,Instagram, 2)

输出:[{message=1, iconof=Instagram, title=hi}]

预期输出:[{Position=1,message=hi,title=Instagram, iconof=2}]

插入命令正在错误的列中插入值。有谁可以帮忙。请 我已经尝试删除PRIMARY KEY和NOT NULL但仍然会出错。

1 个答案:

答案 0 :(得分:-1)

问题在于光标位置错误。这是(0)

 map.put("message", cursor.getString(0));

应该是(1)

map.put("message", cursor.getString(1));