c++ - 将 SQLite 数据库中的数据保存到变量中
问题描述
我正在尝试将数据库中的用户名保存到一个变量中以在另一个 QDialog 中使用,但是当我尝试在另一个对话框中使用它时该变量为空
qry.prepare("select nome from Users where email='"+user+"' and senha='"+password+"'");
if(qry.exec()) {
int count=0;
while(qry.next()) {
ui->label_2->setText(qry.value(0).toString());
count++;
}
if (count == 1) {
usuario = ui->label_2->text();
ui->errologin->setText("");
logado= true;
this->hide();
}
这就是我试图在另一个对话框中调用它的方式:
ui->label->setText(log.usuario);
这是头文件中的变量声明:
public:
explicit login(QWidget *parent = nullptr);
~login();
bool logado;
QString usuario;
解决方案
有一件事你可以做得更好,而不是这样:
qry.prepare("select nome from Users where email='"+user+"' and senha='"+password+"'");
将其替换为:
qry.prepare("select nome from users where email=? and senha=?");
qry.bindValue(0, user);
qry.bindValue(1, password);
请不要构建连接字符串的查询。
除此之外,没有办法知道你的错误在哪里,因为你没有像@AlanBirtles 和@eyllanesc 所要求的那样提供一个最小的可重现的例子。我在您提供的代码中没有看到问题,它可能隐藏在您未显示的代码中。
另一个建议:尝试将您的问题减少到最小的测试程序可能会帮助您自己找到问题。例如,如果您怀疑您对 QSqlQuery 类的使用,那么将您的查询放在控制台程序中,看看它是否返回正确的结果。如果它仍然无法正常工作,请在此处发布您的(完整)测试程序。
推荐阅读
- javascript - how to insert DB values on JS function
- gwt - Datanucleus + GWT 编译过程
- browser - Decimals translated by browser when a dropdown is used
- javascript - 需要示例代码将 phoneGap 应用程序与 PWA 集成。PhoneGap 是否适合集成应用程序?
- python - Django-filters does not work with the Viewset
- powershell - 在另一个 ReportServer 文件夹中创建一个 ReportServer 文件夹
- c# - 一旦消息根据意图从 LUIS 转发到 QnA,则不会从第二个实例返回到 c# 中的 LUIS。该怎么办?
- ios - Swift - 方法调配
- bash - 为数据表中的缺失值添加 0 行
- jquery - 另一个点击函数中的jQuery点击函数