QSqlError("',"',"',) 在 QT 小部件应用程序中
QSqlError("',"',"',) In QT widget app
我正在制作一个ATM应用程序,但由于某种原因,当执行代码以显示用户余额时,它无法正确从数据库中获取值。 它会抛出错误QSqlError(""'."",""')
.
class bankfn : public QObject{
public:
int getCheq(QString e){
QSqlDatabase myDB = QSqlDatabase::database("myConnection",true);
QSqlQuery qry(myDB);
qry.prepare("SELECT cheqBal FROM userRecords WHERE email = (:email)");
qry.bindValue(":email",e);
qDebug() << qry.lastError();
return qry.exec();
}
int getSav(QString e){
QSqlDatabase myDB = QSqlDatabase::database("myConnection",true);
QSqlQuery qry(myDB);
qry.prepare("SELECT savbal FROM userRecords WHERE email = (:email)");
qry.bindValue(":email",e);
qDebug() << qry.lastError();
return qry.exec();
}
void setCheq(QString e);
void setSav(QString e);
};
void maunMenu::setupLogin() //Set up login page for after user credential check
{
ui->cheqbalL->setText("$"+bank.getCheq(sm.activeUser()));
ui->savBalL->setText("$"+bank.getSav(sm.activeUser()));
}
实际上,您似乎没有收到任何错误。您正在尝试打印无错误情况。
exec()
函数调用返回一个bool
值。
如果要跟踪错误,请先检查语句返回exec()
bool
值。
exec()
函数在查询执行失败的情况下返回 false。
应该有点如下图所示:
int getCheq(QString e){
..
..
..
..
bool error = qry.exec();
//HANDLE THE ERROR IF THE EXEC RETURNS FALSE
if(!error)
qDebug() << qry.lastError();
return isErrored ;
}
更多关于你的getCheq
函数返回,如果查询的执行成功与否。它不会返回您期望的值。
您必须返回查询结果的值。
将函数返回类型更改为double
您可以从查询中返回值,如下所示。
return qry.value(0).toDouble();
注意:在返回值/访问成员之前,请处理 NULL 检查。
相关文章:
- 在Qt小部件应用程序中,在重载的"paintEvent"中的"setValue"
- 如何隐藏最大化和最小化按钮并在qml应用程序窗口中显示关闭按钮?
- Qt小部件应用程序"Library not registered"错误
- QT小部件应用程序输出到控制台
- 在Qt小部件应用程序中显示cmd终端
- QSqlError("',"',"',) 在 QT 小部件应用程序中
- 当模式窗口最小化时,最小化所有应用程序窗口(在 Linux 上)
- 应用程序最小化时单击显示桌面/最小化全部
- 如何修复我的非启动小游戏应用程序
- 从 Qt 小部件应用程序调用 pyqt widget
- 如何在Qt小部件应用程序中翻译外部文件中的字符串?
- 如何在Qt中打开外部应用程序并将其最小化到系统托盘
- 检查特定应用程序的窗口是否处于最小化状态
- 如果 LibpocoFoundation 与我的小应用程序相关联,readdir 就会挂断电话
- 嵌入QT下的小部件中的外部应用程序
- 如何在 OnInitDialog 函数中最小化 MFC 应用程序
- 在小部件应用程序中使用QT3D
- C++/Win32 最小的可能的消息框("Hello")应用程序exe?
- C++WM_SIZE用于最小应用程序大小
- 在Qt小部件中分离应用程序逻辑和视图