0

当我从我的mysql数据库“mydb”中查看数据时,从表“testtable”中,它无法打开数据库。

this->model = new QSqlQueryModel();
            meineView->setModel(model);

我必须这样写吗:

 model->setQuery("SELECT id, Nachname, Vorname, Ort FROM mydb");

或者 ?:

 model->setQuery("SELECT `testtable`.`id`,`testtable`.`Nachname`,`testtable`.`Vorname`,`testtable`.`Ort`FROM `mydb`.`testtable`;");

我怎么了?当我删除它时,我的程序可以工作(不查看数据),当我可以打开它时,我如何将数据放在我的表中??

4

2 回答 2

1

您需要使用您的数据库名称调用覆盖方法。因为您尝试打开的数据库不是默认数据库。

尝试这个 :

model->setQuery("SELECT `testtable`.`id`,`testtable`.`Nachname`,`testtable`.`Vorname`,`testtable`.`Ort
`FROM `mydb`.`testtable`;","mydb");
于 2019-12-27T19:21:13.163 回答
0

首先,您需要使用QSqlDatabase类连接到数据库。然后您可以QSqlQueryModel使用正确的 sql 查询连接到 sql 连接。

你的第一个查询是错误的,因为mydb是数据库,这个查询需要表名:

SELECT id, Nachname, Vorname, Ort FROM testtable.

第二个查询是在查询引用多个表时选择的选项。

SELECT testable.id, testable.name, othertable.data FROM testable, othertable, WHERE testable.someRow = othertable.someRow

于 2014-09-17T11:45:29.120 回答