我需要帮助如何在sqlite中实现rawquery。我需要在表中的特定行中插入记录。我搜索并发现我可以使用原始查询来实现这一点。我是sqlite的新手,不知道如何实现原始查询。我有语法错误。
这是我的代码
public void insert (String potision, String total, String curent)
{
SQLiteDatabase db = this.getWritableDatabase();
db.rawQuery("INSERT INTO "+Table_Name2+" VALUES(?,?) WHERE ID = ? ", new String[] {total,curent,potision});
}
这是我的语法错误:
SQLiteException:接近“WHERE”:语法错误(代码1):,编译时:INSERT INTO item_counts_2 VALUES(?,?)WHERE ID =?
帮助将不胜感激
答案 0 :(得分:1)
您可以使用更新查询 ContentValues 来更新数据库中的特定行数据
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COLUMN_1, value1);
values.put(COLUMN_2, value2);
return db.update(TABLE_NAME, values, ID + " = ?",
new String[] { String.valueOf(idValue) });
希望它会帮助你。
答案 1 :(得分:1)
您正在使用syntax error
,因为您在插入内添加了where
子句。
执行insert
时,您要向数据库添加一行。指定行没有任何意义。
如果你要更新一行,那么where
子句就可以了,因为你必须告诉他要更新的行。
同样在删除行时,where
子句被广泛使用,因此您不会删除整个表。
插入:here
请注意,文档是指SQLite,因为您使用的是Android。
答案 2 :(得分:0)
请勿在{{1}}查询中使用where
子句。
如果要向数据库插入新行,那么insert
子句是多余的,删除它就可以正常工作。
OR,
如果要更新数据库中已存在的值,请使用where
查询而不是update
,
有关更多信息,请访问here。