我有一个QSqlDatabase:
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("something");
db.setUserName("username");
db.setPassword("password");(我可以使用我使用的密码和用户名登录MySQL工作台,所以我认为它们是正确的。)
QSqlDatabase::database().open();它返回true,因此打开成功。但是下面的代码不起作用:
QSqlQueryModel* model = new QSqlQueryModel();
model->setQuery("select user_id, name, password, level from user where user_id = 'user' and password = 'password'");现在model->rowCount等于0(我不知道为什么)
model->index(0, 0).data() == "username" &&
model->index(0, 2).data() == "password"返回false。有没有人知道问题出在哪里?
发布于 2016-05-12 20:38:38
在您创建查询,执行它,然后生成setQuery()之后,QSqlQueryModel将会工作。我想您忘记了create query和exec()它。
所以:
QSqlQuery query;
if(query.exec("select user_id, name, password, level from user where user_id = 'user' and password = 'password'"))
model->setQuery(query);如果你想更新模型,你可以使用:
model->query()->exec();
model->setQuery(model->query());我的建议是:用QSqlQueryModel创建你自己的类,用更少的代码做你想做的事情。
https://stackoverflow.com/questions/37186961
复制相似问题