• 3942阅读
  • 0回复

刚才错了~ [复制链接]

上一主题 下一主题
离线ff007bit
 
只看楼主 倒序阅读 楼主  发表于: 2011-01-06
我最近才学QT,要编一个系统,要求用到MS SQL 2000数据库,系统开始部分要有一个登录对话框,输入用户名和密码,然后从数据中查找匹配项,存在的话才允许进入系统.
代码如下:登录按钮
  1. void LoginDlg::on_pushButton_Login_clicked()
  2. {
  3. QMessageBox Box;
  4. QSqlTableModel query;
  5. QString sql;
  6. /*设置数据库连接参数*/
  7. QSqlDatabase db=QSqlDatabase::addDatabase("QODBC");
  8. db.setHostName("127.0.0.1"); 这部分我填不填都可以open()成功
  9. db.setDatabaseName("assets");
  10. db.setUserName("hp");
  11. db.setPassword("");
  12. /*判断输入是否为空*/
  13. if( ui->lineEdit_User->text().isEmpty())
  14. {
  15. Box.setText("Please Enter User!");
  16. Box.exec();
  17. ui->lineEdit_User->setFocus();
  18. return;
  19. }
  20. if( ui->lineEdit_Password->text().isEmpty() )
  21. {
  22. Box.setText("Please Enter Password!");
  23. Box.exec();
  24. ui->lineEdit_Password->setFocus();
  25. return;
  26. }
  27. /*连接数据库*/
  28. if( !db.open() ) 每次都能成功连接
  29. {
  30. Box.setText(tr("Connect Sql Failed!!!"));
  31. Box.exec();
  32. return;
  33. }
  34. /*查询数据库*/
  35. 在QString里,我没找到类似于format的函数,我自己把他们组合成QString了
  36. lineEdit_User和lineEdit_Password是两个编辑框
  37. sql=tr("user=")+ui->lineEdit_User->text().trimmed()+tr(" AND password=")+ui->lineEdit_Password->text().trimmed();
  38. query.setTable(tr("UserInfoTable"));
  39. query.setFilter(sql);
  40. query.select();
  41. /*分析查询记录*/
  42. if( !query.rowCount()>0 )
  43. {
  44. 每次查询都执行这部分.没有查到任何内容!!!!
  45. //用户名密码不正确的操作
  46. Box.setText(tr("sorry,wrong password!"));
  47. Box.exec();
  48. ui->lineEdit_Password->clear();
  49. ui->lineEdit_Password->setFocus();
  50. return;
  51. }
  52. else
  53. {
  54. Box.setText(tr("welcome to the Assets System!"));
  55. Box.exec();
  56. accept();
  57. }
  58. }

表的名字是User,数据库名字是BFS,数据源名为assets.表中两个量:user,password.对应值为,ff和123]
不知道为什么,每次都是连接上,但是查询不到任何内容
大家帮我看看哪写错了吗..还是别的问题...急~谢谢
刚才发急了................不好意思
快速回复
限100 字节
 
上一个 下一个