当前位置: 代码迷 >> QT开发 >> Qt 数据库查询数据在表中展示
  详细解决方案

Qt 数据库查询数据在表中展示

热度:39   发布时间:2016-04-25 03:56:29.0
Qt 数据库查询数据在表中显示
我建立了一个数据库,数据库中的内容显示在表一中,然后建立了一个查询的按钮,现在要实现的是查询数据库后的数据在另外一张表表2中显示怎么做,求大神指导

------解决方案--------------------
        QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
        QString dsn = QString::fromLocal8Bit("DRIVER={SQL SERVER};SERVER=203.88.208.89;DATABASE=DB10762");
        //设置主机和数据库名
        db.setDatabaseName(dsn);
        //即使dsn中已经设置了UID和PASSWD,仍然需要执行setUserName和setPassword的步骤
        db.setUserName("DB10762");
        db.setPassword("72bac2");
        if(!db.open()) {
                qDebug() << "NO";
                return;
        }
         qDebug() << "YES";
         
QSqlTableModel *model = new QSqlTableModel;


         QTableView  * view = new QTableView();
         view->setModel(model);
         view->setEditTriggers(QAbstractItemView::NoEditTriggers); //设置成不可编辑
        

执行SQL语句:
QSqlQuery query = model->query();
model->setQuery("select * from stu");
        model->setHeaderData(0, Qt::Horizontal, tr("id"));
        model->setHeaderData(1, Qt::Horizontal, tr("name"));

------解决方案--------------------
我的第一反应估计是和楼主的解决方法一样:
QSqlQuery up;
    up.prepare("select * from ...where name=:dname");
    QString str2=QString("%1").arg(login);
    up.bindValue(":dname",str2);
    up.exec();
    QSqlRecord rec=up.record();
    while(up.next())
    {
        rec=up.record();
        int spassword=rec.indexOf("password");
        QString value=up.value(spassword).toString();
    }
    if(value==password)
        {
QStringstr=QString("insert into ...(name,password)values(%1,%2)").arg(zhanghao).arg(mima);
            query.exec(str);
        }
        else
        {
  相关解决方案