【发布时间】:2015-02-02 11:37:03
【问题描述】:
我正在尝试在 QT 中制作一个简单的登录表单,但我想我做错了什么。我看了一些教程,在不同的论坛上搜索,我找不到任何解决方案。
数据库声明如下:
#include <QMainWindow>
#include <QTSql>
#include <QtDebug>
#include <QFileinfo>
QSqlDatabase sqldb;
sqldb=QSqlDatabase::addDatabase("QSQLITE");
sqldb.setDatabaseName("data.db");
就这样开始了:
if(sqldb.open())
ui->label->setText("Conectat!");
else
ui->label->setText("Nu m-am conectat!");
看起来在我的代码中,query.exec() 只返回 false。
void MainWindow::on_pushButton_clicked()
{
user=ui->lineEdit->text();
qDebug()<<user;
if(!sqldb.isOpen()){
qDebug()<<"Not connected to db";
return;
}
QSqlQuery qry;
if(qry.exec("select * from users where name='"+user+"'"))
{
int count=0;
while(qry.next()){
count++;
}
if(count==1)
ui->label_3->setText("correct");
if(count<1)
ui->label_3->setText("not correct");
if(count>1)
ui->label_3->setText("duplicate");
}
else qDebug()<<"not working!";
}
如果我将 if 条件更改为 !qry.exec(...) 我总是会收到“不正确”的消息。 有什么想法吗?
【问题讨论】:
-
如何添加数据库连接和打开?提供该部分的代码。
-
@Nejat,我编辑了问题。
-
sqldb.isOpen()是否返回 true? -
"select * from users where name='"+user+"'"==> SQL Injection!!! -
@Nejat,问题解决了。看起来我为我的数据库提供了错误的路径 xD