android sqlite插入到哪里

时间:2013-02-27 13:47:35

标签: android sqlite

我想插入现有应用程序数据表的应用程序类别。我不知道我是否正确,但在我正在做的事情我也得到了这个错误。

我该怎么做呢?

Mainactivity

    AlertDialog.Builder builder = new AlertDialog.Builder(
            MainActivity.this);
    builder.setTitle("Please Select Category of : " + AppName); 
    builder.setItems(shareItems,
            new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int item) {
                    // TODO Auto-generated method stub
                    String itemz = String.valueOf(shareItems[item]);
                    mySQLiteAdapter.insertcategory(AppName, itemz);
                }
            });
    AlertDialog shareAlert = builder.create();
    shareAlert.show();

处理程序

 public long insertcategory(String AppName, String itemz) {
            // TODO Auto-generated method stub
            Cursor crack = sqlitedb.rawQuery("INSERT INTO " + KEY_CATEGORY
                    + " VALUES ( ' " + itemz + " ' ) WHERE " + KEY_NAME
                    + " LIKE ?", new String[] { "%" + AppName+ "%" });
            return 0;
        }

更新后的查询 这是我用来更新表格的内容。 itemz将值作为“游戏”获取,但它没有得到更新

public long insertcategory(String AppName, String itemz) {
        // TODO Auto-generated method stub

        ContentValues values = new ContentValues();
        values.put(KEY_CATEGORY, itemz);
        return sqlitedb.update(MYDATABASE_TABLE, values, KEY_NAME + " LIKE ?",
                new String[] { "%" + AppName + "%" });

    }

表格创建为

private static final String SCRIPT_CREATE_DATABASE = "create table "
            + MYDATABASE_TABLE + " (" + KEY_ID
            + " integer primary key autoincrement, " + KEY_NAME
            + " text not null, " + KEY_PACK + " text not null, " + KEY_PERM
            + " text not null, " + KEY_LEVEL + " text not null, "
            + KEY_CATEGORY + " text);";

3 个答案:

答案 0 :(得分:5)

INSERT命令没有WHERE子句,因为它插入了一个全新的记录。

您似乎想要设置/更改现有记录中的值。 这将通过UPDATE命令完成:

UPDATE MyTable SET category = 'Entertainment' WHERE name LIKE ?

答案 1 :(得分:0)

您无法使用INSERT INTO,然后使用WHERE子句。

INSERT INTO表示您在表中添加了一个新行,之前不存在。 您可以在UPDATE和SELECT语句中使用WHERE,但不能在INSERT INTO上使用。

我猜你的意思是UPDATE而不是INSERT INTO:

试试这个:

public long insertcategory(String AppName, String itemz) {
            // TODO Auto-generated method stub
            Cursor crack = sqlitedb.rawQuery("UPDATE " + KEY_CATEGORY
                    + " SET yourFieldNameHere = ' " + itemz + " '  WHERE " + KEY_NAME
                    + " LIKE ?", new String[] { "%" + AppName+ "%" });
            return 0;
        }

对于插入,请尝试:

   public long insertcategory(String AppName, String itemz) {
                // TODO Auto-generated method stub
                Cursor crack = sqlitedb.rawQuery("INSERT INTO " + KEY_CATEGORY
                        + " VALUES(' " + itemz + " ')" });
                return 0;
            }

使用表格字段的名称更改yourFieldNameHere。

答案 2 :(得分:0)

您不能在INSERT INTO中使用WHERE。如果使用INSERT将添加一个新行。如果您需要KEY_NAME LIKE“%AppName%使用UPADATE

的更新行