ionic 3中的Sqlite查询输出错误

时间:2018-09-12 13:46:34

标签: sqlite cordova ionic3 ionic-native

我正在使用SQlite数据库构建离子应用程序。 我已经可以在数据库中放入数据了,但是当我运行一个简单的查询来获取数据时,我得到的反馈很奇怪。

我的简单代码

this.databaseService.execQuery('SELECT * FROM timelog WHERE id = ? ORDER BY id DESC',[this.ongoingTimelog.id])
        .then((data) => {
            console.log(data);
            debugger;
        });


execQuery(query: string, params?: Array<string | number>): Promise<any> {
    return new Promise((resolve, reject) => {
        if (!query) {
            resolve();
        }
        this.db.executeSql(query, params)
            .then((result: any) => {
                resolve(result);
            })
    });
}

所以通常我会怀疑(随着我个人电脑的发展)数据就像data.rows [0] .id ... 但是在平板电脑上,我得到以下信息: data on phone

有人知道我为什么会得到完全不同的东西以及如何获得正确的数据吗?

提前谢谢!

1 个答案:

答案 0 :(得分:0)

您看到的是SQLite的javascript包装器。该包装器使与js对话成为可能,并且在Android和iOS中很常见。

您的数据在那里,屏幕截图显示您只有一项。要访问您,需要:

this.databaseService.execQuery('SELECT * FROM timelog WHERE id = ? ORDER BY id DESC',[this.ongoingTimelog.id])
    .then((data) => {
        console.log(data.rows.item(0));
        debugger;
    });

需要data.rows.item(0).id而不是data.rows [0] .id

检查此示例应用程序可能会有所帮助。 cordova-sqlite-storage-starter-app