zoukankan      html  css  js  c++  java
  • 可视化数据库——model(数据)/view(视图)

     一、创建显现数据库视图

    1、创建并打开数据库
    
    2、设置模型
        QSqlTableModel *model = new QSqlTableModel(this);
        //模型自动关联刚刚打开的数据库
        model->setTable("student");//关联数据库中的表student
        
    3、把model放在view
        ui->tableView->setModel(model);//tableView是设计师中的QTableView
        model->select();//显示model里的数据
    

      

    二、细节

        model->setHeaderData(0, Qt::Horizontal, "学号");//设置表头
        //设置model的编辑策略为手动提交修改
        model->setEditStrategy(QSqlTableModel::OnManualSubmit);
        //设置view视图上不允许修改数据
        ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);

    三、添加删除和保存

      

    //添加
    void Widget::on_buttonAdd_clicked()
    {
        //添加空记录
        QSqlRecord record = model->record(); //获取空记录
        //获取行号
        int row = model->rowCount();
        model->insertRecord(row, record);
    }
    //提交(即确定)
    void Widget::on_buttonSure_clicked()
    {
        model->submitAll(); //提交动作
    }
    //撤销
    void Widget::on_buttonCancel_clicked()
    {
        model->revertAll(); //取消所用动作
        model->submitAll(); //提交动作
    }
    //删除
    void Widget::on_buttonDel_clicked()
    {
        //获取选中的模型
        QItemSelectionModel *sModel =ui->tableView->selectionModel();
        //取出模型中的索引
        QModelIndexList list = sModel->selectedRows();
        //删除所有选中的行
        for(int i = 0; i < list.size(); i++)
        {
            model->removeRow( list.at(i).row() );
        }
    }
    //查找
    void Widget::on_buttonFind_clicked()
    {
        QString name = ui->lineEdit->text();
        QString str = QString("name = '%1'").arg(name);
        model->setFilter(str);
        model->select();
    }
  • 相关阅读:
    第一篇博客
    【面试大系】PHP程序员的知识盘点
    【PHP资源】PHP 资源大全
    【前端经纬】将页面元素定位
    大爱卡农三百年
    【夯实PHP基础】PHP标准库 SPL
    【http抓包】记录一次抓手机app的接口
    【算法】PHP实现冒泡排序和快速排序--防遗忘
    Apache的初中级面试题
    【生活感悟系列】感悟在一瞬间(不断完善中)
  • 原文地址:https://www.cnblogs.com/wangbin-heng/p/9769113.html
Copyright © 2011-2022 走看看