gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 14:18:21 25 4
gpt4 key购买 nike

我有以下代码。当我打开我的 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);

rawQuery() 的文档指出:

the SQL query. The SQL string must not be ; terminated

在我的第一个查询中确实是这种情况。 (另一个区别是 Id。我更改了它以便两个插入都可以工作,Id 是索引)。

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

有什么想法吗?我在这上面花了好几个小时,但我想不通。我想这是我遗漏的非常微不足道的事情。

最佳答案

public void execSQL (String sql) 

Execute a single SQL statement that is NOT a SELECT or any other SQL statement that returns data.

你必须使用 execSQL()

  • 插入
  • 更新
  • 删除

使用 rawQuery(),因为它为 SELECT 查询返回 Cursor

关于android - SQLite:rawQuery() 不起作用,但 execSQL() 起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12704129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com