我最近才学QT,要编一个系统,要求用到MS
SQL 2000数据库,系统开始
部分要有一个登录
对话框,输入用户名和密码,然后从
数据库中查找匹配项,存在的话才允许进入系统.
代码如下:登录
按钮 - void LoginDlg::on_pushButton_Login_clicked()
- {
- QMessageBox Box;
- QSqlTableModel query;
- QString sql;
- /*设置数据库连接参数*/
- QSqlDatabase db=QSqlDatabase::addDatabase("QODBC");
- db.setHostName("127.0.0.1"); 这部分我填不填都可以open()成功
- db.setDatabaseName("assets");
- db.setUserName("hp");
- db.setPassword("");
- /*判断输入是否为空*/
- if( ui->lineEdit_User->text().isEmpty())
- {
- Box.setText("Please Enter User!");
- Box.exec();
- ui->lineEdit_User->setFocus();
- return;
- }
- if( ui->lineEdit_Password->text().isEmpty() )
- {
- Box.setText("Please Enter Password!");
- Box.exec();
- ui->lineEdit_Password->setFocus();
- return;
- }
- /*连接数据库*/
- if( !db.open() ) 每次都能成功连接
- {
- Box.setText(tr("Connect Sql Failed!!!"));
- Box.exec();
- return;
- }
- /*查询数据库*/
- 在QString里,我没找到类似于format的函数,我自己把他们组合成QString了
- lineEdit_User和lineEdit_Password是两个编辑框
- sql=tr("user=")+ui->lineEdit_User->text().trimmed()+tr(" AND password=")+ui->lineEdit_Password->text().trimmed();
- query.setTable(tr("UserInfoTable"));
- query.setFilter(sql);
- query.select();
- /*分析查询记录*/
- if( !query.rowCount()>0 )
- {
- 每次查询都执行这部分.没有查到任何内容!!!!
- //用户名密码不正确的操作
- Box.setText(tr("sorry,wrong password!"));
- Box.exec();
- ui->lineEdit_Password->clear();
- ui->lineEdit_Password->setFocus();
- return;
- }
- else
- {
- Box.setText(tr("welcome to the Assets System!"));
- Box.exec();
- accept();
- }
- }
表的名字是User,数据库名字是BFS,数据源名为assets.表中两个量:user,password.对应值为,ff和123]
不知道为什么,每次都是连接上,但是查询不到任何内容
大家帮我看看哪写错了吗..还是别的
问题...急~谢谢
刚才发急了................不好意思