Qt组件设置QSqlQueryModel没显示数据? 5C

数据库创建代码

 #pragma once
#ifndef CONNECTION_H
#define CONNECTION_H

#include<QtSql>
#include<qdebug.h>
#include<QSqlDatabase>

static bool createConnection()
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");

    db.setHostName("Andy");
    db.setDatabaseName("testData.db");
    db.setUserName("Andy");
    db.setPassword("123456");
    if (!db.open())
    {
        qDebug() << "创建数据库时失败!";
        return false;
    }
    QSqlQuery query(db);
    /*query = QSqlQuery::QSqlQuery(db);*/

    // 创建类型表
    query.exec("create table type(id varchar primary key, name varchar)");
    query.exec(QString("insert into type values(0,请选择类型)"));
    query.exec(QString("insert into type values(01,电视)"));
    query.exec(QString("insert into type values(02,空调)"));

    return true;
}

#endif // !CONNECTION_H

组件关联数据库代码

 Widget::Widget(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);

    ui.stackedWidget->setCurrentIndex(0);
    QSqlQueryModel *typeModel = new QSqlQueryModel(this);
    typeModel->setQuery("select name from type");
    ui.sellTypeComboBox->setModel(typeModel);

}

主函数

int main(int argc, char *argv[])
{

    QApplication a(argc, argv);
    if (!createConnection())
        return 0;
    Widget w;
    w.show();
    return a.exec();
} 

图片说明

这个comboBox却没有出现数据库表中的数据项

2个回答

你没有调用静态函数来打开数据库啊,积分急用,望兄弟采纳,main文件里面调用一下静态函数!

qq_27135095
奈何桥边摆地摊 回复刘知安: 为何你的部件是禁用状态
2 年多之前 回复
qq_37174526
Liu Zhian 我调用了啊。就是数据显示不出来。。
2 年多之前 回复

有提示错误信息么

qq_37174526
Liu Zhian 没有啊
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐