SQLite:rawQuery()不起作用,但execSQL()工作

Can*_*ner 1 sqlite android

我有以下代码.当我打开我的SQLite数据库时,我可以看到患者Id = 1235已创建但不是Id = 1234:

String sql;
sql = "INSERT INTO Users(Id, Name, Surname, LastLogin)VALUES(1234, 'john', 'foo', null)";
database.rawQuery(sql, null);

sql = "INSERT INTO Users(Id, Name, Surname, LastLogin)VALUES(1235, 'john', 'foo', null);";
database.execSQL(sql);
Run Code Online (Sandbox Code Playgroud)

rawQuery()各州的文件:

SQL查询.SQL字符串不能; 终止

在我的第一个查询中确实如此.(另一个区别是Id.我改变它以便两个插入都可以工作,Id是索引).

使用调试器我可以确认两个查询都已执行,并且我没有得到任何异常或错误.

任何的想法?我花了好几个小时,但我无法理解.我想这是我失踪的非常微不足道的事情.

Lal*_*ani 10

public void execSQL (String sql) 
Run Code Online (Sandbox Code Playgroud)

执行一个非SELECT的SQL语句或任何其他返回数据的SQL语句.

你必须使用execSQL()

  • 插入
  • UPDATE
  • 删除

使用rawQuery() 它返回CursorSELECT查询.


Sam*_*eer 9

虽然我在文档中找不到这个,但我理解的是rawQuery用于SELECT查询.它只是"查询"方法的"原始"接口.