wangyu_1999 2022-07-22 15:53 采纳率: 40%
浏览 386
已结题

QT连接两个qslite数据库报错QSqlQuery::exec: database not open

QT连接两个qslite数据库出现数据连接问题报错QSqlQuery::exec: database not open
两个数据库是两个不同的界面,这是其中一个数据库的代码
主函数程序
QSqlDatabase m_db=QSqlDatabase::addDatabase("QSQLITE","material_connect");
m_db.setDatabaseName("E:\Damage-assessment\software\QT\GUI\GUI4.0\gui1.0\build-gui-Desktop_Qt_5_14_2_MSVC2017_64bit-Release\mental_material.db");

        if(m_db.open())
        {
            qDebug()<<"open success1";
        }
        else
        {
            qDebug()<<"open failed1";
        }

         QSqlQueryModel *model=new QSqlQueryModel(this);

             QString sql;

             sql="select name as  姓名 ,density as 密度, shear_modulus as 剪切模量 ,yield_stress as 屈服应力, maximum_yield_stress as 最大屈服应力, melting_temperature as 熔化温度 from mental_material";

             model->setQuery(sql,m_db);

              ui->display->setModel(model);

点击按钮的槽函数
void material::on_show_pushButton_clicked()
{
QSqlQueryModel *model=new QSqlQueryModel;
QString sql;
sql="select name as 姓名 ,density as 密度, shear_modulus as 剪切模量 ,yield_stress as 屈服应力, maximum_yield_stress as 最大屈服应力, melting_temperature as 熔化温度 from mental_material";

 model->setQuery(sql,m_db);

 ui->display->setModel(model);

}

运行结果及报错内容

这是运行后的图片

img


但是点击显示按钮,数据库没有了

img


报错QSqlQuery::exec: database not open

  • 写回答

1条回答 默认 最新

  • bostonAlen 2022-07-25 14:33
    关注

    先检查m_db是不是类的成员,不应该出现这行代码
    QSqlDatabase m_db=QSqlDatabase::addDatabase("QSQLITE","material_connect");
    至少应该是
    m_db=QSqlDatabase::addDatabase("QSQLITE","material_connect");
    其次,保证绑定的数据库已经打开。
    这个错误是Query绑定数据库没成功,query一直使用的是默认连接。
    1、试试加上this,QSqlQueryModel *model=new QSqlQueryModel(this);
    2、换一种方式,定义QSqlQuery query(m_db);然后query.setDatabase(m_db)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 8月9日
  • 已采纳回答 8月1日
  • 创建了问题 7月22日

悬赏问题

  • ¥15 求指导储层饱和度及含水率测井解释
  • ¥200 建三维地震工区写入sgy到指定目录
  • ¥30 靶向捕获测序探针设计自学
  • ¥15 写代码写代码单片机代码写代码写数字按键代码
  • ¥15 django按照距离进行排序
  • ¥15 (标签-微信|关键词-微信公众号)
  • ¥15 matlab中mjs用不了
  • ¥15 Ios抖音直播的时候如何添加自定义图片在直播间!
  • ¥60 riscv-pulpino总线上挂载axi从机
  • ¥15 ssh登录页面的问题