void loginDialog::emptyCheck()
{
if(m_ui->lineEdit->text().isEmpty()||m_ui->lineEdit_2->text().isEmpty())
{
QMessageBox::information(this,"Wrong","Something is left empty");
return;
}
QSqlDatabase db=QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("manager.db");
if(!db.open())
{
qDebug()<<db.lastError();
QMessageBox::information(0,"Fail","Fail to connect the database");
QMessageBox::information(0,"Wrong","The user is not exist");
db.close();
return;
}
QSqlQuery query(db);
QSqlRecord rec;
query.prepare("SELECT id FROM users WHERE name=:loginName AND password=:loginPassword");
query.bindValue(":loginName",m_ui->lineEdit->text());
query.bindValue(":loginPassword",m_ui->lineEdit_2->text());
if(!query.exec())
{
qDebug()<<query.lastError();
QMessageBox::information(0,"Fail","SELECT operation is failed");
QMessageBox::information(0,"Wrong","The user is not exist");
db.close();
return;
}
else
{
rec=query.record();
}
if(!query.isValid())
{
QMessageBox::warning(0,"Wrong","The user is not exist"); //运行时到这里
db.close();
return;
}
else
{
userId=query.value(0).toString();
}
QMessageBox::information(0,"finally",userId);
db.close();
this->setResult(QDialog::Accepted);
this->hide();
}
运行时总是提示The user is not exist。相应代码标注如上。
不知道是什么原因?
注:当我在命令行中使用sqlite来查询user表内的内容的时候
使用SELECT id FROM users WHERE name=**** AND password=*****
发现有记录。