|
1Qter豆
QSqlDatabase db = QSqlDatabase::database("h_user");
QString passCltext = ui->passEdit->text();
QString userName = ui->userEdit->text();
if(userName==""){
QMessageBox::critical(0, "No username provided","You left the username blank");
return; }
if(passCltext==""){
QMessageBox::critical(0, "No password provided","You left the password blank");
return;
}
//////////////////////////////////////////////////////////////////////////
/////////////////////////////////通过登录框的username,查找数据,但是似乎只能取到第一条。
QSqlQuery query;
query.exec("SELECT * from h_user where UserName = userName");
query.bindValue(":UserName", userName);
/////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////
query.next();
QVariant w = query.value(1);
QVariant v = query.value(2);
if(userName == w.toString() && passCltext==v.toString()){
QMessageBox::information(0,QString::fromLocal8Bit("登录成功"),QStringLiteral("登录成功"),QMessageBox::Ok);
if(userName == "002"){
mainWindow *w = new mainWindow();
w -> show();
}else{
adduser *w = new adduser();
w -> show();
}
}else{
QMessageBox::warning(this,QString::fromLocal8Bit("警告"),QStringLiteral("用户名或者密码错误"),QMessageBox::Ok);
this -> ui -> userEdit -> clear();
this -> ui -> passEdit -> clear();
return;
|
最佳答案
查看完整内容
查询语句有问题:query.exec("SELECT * from h_user where UserName = userName");
你这句查找条件是 UserName = userName中,userName是你自己设定的变量,并非数据库
字段或标准类型(如INT,CHAR*等)。你可以试着这样写:
QString cmd = QString("SELECT * from h_user where UserName = %1").arg(userName);
query.exec(cmd);
|