• 5383阅读
  • 5回复

关于QSqlQuery的问题 [复制链接]

上一主题 下一主题
离线caichao07
 

只看楼主 倒序阅读 楼主  发表于: 2010-02-23
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
    QString username;
    QString password;
    QStringList list=msg.split(" ");
    username=list.at(0);
    password=list.at(1);
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost");
    db.setDatabaseName("test");
    db.setUserName("****8888");
    db.setPassword("***88888");
    if (!db.open()) {
        QMessageBox::critical(0, qApp->tr("Cannot open database"),
            qApp->tr("Unable to establish a database connection.\n"
                     "This example needs MySQL support. Please read "
                     "the Qt SQL driver documentation for information how "
                     "to build it.\n\n"
                     "Click Cancel to exit."), QMessageBox::Cancel);
    }
    QSqlQuery query=QSqlQuery(db);
    query.prepare("select password from test.usertable where username= ?");
    query.addBindValue(username);
    query.exec();
    while(query.next())
   {
        if( password == query.value(0).toString() )
             emit updateServer(msg,length);
   }

上面代码的emit updateServer(msg,length); 总是无法执行
请教高手指点!!!
谢谢
离线caichao07

只看该作者 1楼 发表于: 2010-02-23
我试过改为:
    query.prepare("select id from test.usertable where username= ? and password= ? ");
        query.addBindValue(username);
        query.addBindValue(password);
         query.exec();
         while(query.next())
         {
             emit updateServer(msg,length);
        }
也是无法执行 emit 代码???
离线XChinux

只看该作者 2楼 发表于: 2010-02-24
在emit 之前qDebug()一下,看看到底有没有到达该位置。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线caichao07

只看该作者 3楼 发表于: 2010-02-24
        qDebug("+++++++++++++++++++++++++++++++");
        if( password == query.value(0).toString() )
        {
            qDebug("=======================");
            emit updateServer(msg,length);
        }
程序可以输出+++++++++++
但没有输出=============
离线yb824
只看该作者 4楼 发表于: 2010-02-24
引用第1楼caichao07于2010-02-23 20:32发表的  :
我试过改为:
    query.prepare("select id from test.usertable where username= ? and password= ? ");
        query.addBindValue(username);
        query.addBindValue(password);
         query.exec();
.......


query没有查询出记录来~~~~
离线caichao07

只看该作者 5楼 发表于: 2010-02-24
我用qDebug()查出来了,原来比较的数据和数据库里的数据不一致,谢谢指教!!!
快速回复
限100 字节
 
上一个 下一个