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