【问题标题】:SQLite database.query() returns 0SQLite database.query() 返回 0
【发布时间】:2018-03-05 05:24:38
【问题描述】:

问题:在 SQLite 数据库浏览器中创建的表的查询返回 0

采取的步骤:

1) 创建表:

create table friends (id integer primary key, name TEXT, email TEXT, phone NUMERIC);

2) 填充表格(手动)。

3) 尝试从表中全选:

static final String DATABASE_NAME = "lab5.db";
  String[] columns = new String[] {
              KEY_ROWID, 
              KEY_NAME, 
              KEY_EMAIL, 
              KEY_PHONE };   
    Cursor allRows = db.query(DATABASE_TABLE, columns, null, null, null, null, null);

结果:所有行返回 0 行。

任何帮助将不胜感激。

【问题讨论】:

  • 获得光标后。尝试 cursor.moveToFirst() 然后检查。
  • 检查您的 KEY_NAME 值是否为“名称”?
  • 没有数据,虽然你说有。表已创建并且查询在语法上是正确的,因为没有异常。

标签: android sqlite


【解决方案1】:

这可能是因为您创建了一个使用不同名称的表,即您在创建表时没有使用字符串键值。在获取数据时,您尝试使用可能与实际列名称不同的字符串键值来获取列。

所以最好使用除键之外的列的实际名称作为KEY_ROWID,KEY_NAME,KEY_EMAIL,KEY_PHONE 尝试获取列详细信息,如下所示:

String[] columns = new String[] {
          id, 
          name, 
          email, 
          phone};  

还将您的数据库表名更改为实际表名,如下所示:

 Cursor allRows = db.query("friends", columns, null, null, null, null, null);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-20
    • 1970-01-01
    • 2017-09-15
    • 2016-07-03
    • 1970-01-01
    • 1970-01-01
    • 2014-07-29
    • 1970-01-01
    相关资源
    最近更新 更多