色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Qt學(xué)習(xí)筆記之?dāng)?shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)5

jf_78858299 ? 來源:紛紜雜談 ? 作者:CY_CHEN ? 2023-02-17 13:56 ? 次閱讀

一、QSqlQueryModel模型基本使用

//使用QSqlQueryModel來高效地查詢數(shù)據(jù)庫操作
//1、創(chuàng)建QSqlQueryModel對(duì)象,并設(shè)置相關(guān)的表頭信息
QSqlQueryModel* model = new QSqlQueryModel;
//執(zhí)行sql語句,將查詢出來的結(jié)果轉(zhuǎn)換成model對(duì)象
model->setQuery("select name ,age,address,salary from staff");
//根據(jù)需求設(shè)置表頭信息
model->setHeaderData(0,Qt::Horizontal,"Name");
model->setHeaderData(1,Qt::Horizontal,"Age");
model->setHeaderData(2,Qt::Horizontal,"Address");
model->setHeaderData(3,Qt::Horizontal,"Salary");
//給ui控件設(shè)置一個(gè)模型
QTableView* view = new QTableView(ui->tableView);


view->setFixedSize(QSize(this->width(),this->height()));
view->setModel(model);//相當(dāng)于將數(shù)據(jù)聯(lián)動(dòng)到UI控件上


//將view顯示
view->show();

運(yùn)行后,頁面就可以顯示出數(shù)據(jù)庫表格相關(guān)信息了。

圖片

二、QSqlQueryModel可編輯接口重寫

默認(rèn)情況下,QSqlQueryModel模型是只讀的。要使它具有可讀寫性,必須繼承它并重新實(shí)現(xiàn)setData()和flags()。另一種選擇是使用QSqlTableModel,它提供了基于單個(gè)數(shù)據(jù)表的讀寫模型。

接口一:

[virtual]bool setData(const QModelIndex &index,const QVariant &value,int role = Qt::EditRole)

接口二:

[override virtual]Qt::ItemFlags flags(const QModelIndex &index)const

創(chuàng)建一個(gè)新的類用于編輯

editquerymodel.h

#ifndef EDITQUERYMODEL_H
#define EDITQUERYMODEL_H
#include 
#include 


class editQueryModel : public QSqlQueryModel
{
public:
    editQueryModel();


    //重寫基類的虛函數(shù)
    bool setData(const QModelIndex &index,const QVariant &value,int role = Qt::EditRole);
    Qt::ItemFlags flags(const QModelIndex &index)const;


private:
    //自定義接口函數(shù)
    //更新數(shù)據(jù)
    void refresh();


    //根據(jù)需求來定義修改表中的內(nèi)容的接口
    bool setName(int useId,const QString& name);
};


#endif // EDITQUERYMODEL_H

editquerymodel.c

#include "editquerymodel.h"


editQueryModel::editQueryModel()
{


}


bool editQueryModel::setData(const QModelIndex &index, const QVariant &value, int role)
{
    //1、判斷是否為有效列    員工表--id 用戶名 年齡 地址 薪資
    if(index.column() < 1 || index.column() > 4)
        return false;


    //獲取列所對(duì)應(yīng)的id
    QModelIndex prinmaryIndex = QSqlQueryModel::index(index.row(),0);
    int id = this->data(prinmaryIndex).toInt();


    //在修改行時(shí),將數(shù)據(jù)清除,把整個(gè)model清空
    this->clear();
    bool ok;
    //根據(jù)需求修改所對(duì)應(yīng)的列
    if(index.column() == 1)
    {
        ok = setName(id,value.toString());
    }


    //刷新數(shù)據(jù)
    refresh();


    return ok;
}


Qt::ItemFlags editQueryModel::flags(const QModelIndex &index) const
{
    //1、獲取當(dāng)前單元格的編輯狀態(tài)
    Qt::ItemFlags flag = QSqlQueryModel::flags(index);


    //2、給現(xiàn)有的標(biāo)志增加一個(gè)可編輯的標(biāo)志
//    if(index.column()==1)
    flag = flag | Qt::ItemIsEditable;//給它設(shè)置一個(gè)可編輯的狀態(tài)


    return flag;
}


void editQueryModel::refresh()
{
    //相當(dāng)于將數(shù)據(jù)庫的數(shù)據(jù)查詢出來,轉(zhuǎn)換成一個(gè)model
    this->setQuery("select * from staff");
    this->setHeaderData(0,Qt::Horizontal,"ID");
    this->setHeaderData(1,Qt::Horizontal,"Name");
    this->setHeaderData(2,Qt::Horizontal,"Age");
    this->setHeaderData(3,Qt::Horizontal,"Address");
    this->setHeaderData(4,Qt::Horizontal,"Salary");
}


bool editQueryModel::setName(int useId, const QString &name)
{
    //相當(dāng)于一個(gè)刷新的操作
    QSqlQuery query;


    query.prepare("update staff set name = ? where id = ?");


    query.addBindValue(name);
    query.addBindValue(useId);
    return query.exec();
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • SQL
    SQL
    +關(guān)注

    關(guān)注

    1

    文章

    780

    瀏覽量

    44787
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3900

    瀏覽量

    65728
  • SQlite
    +關(guān)注

    關(guān)注

    0

    文章

    81

    瀏覽量

    16299
收藏 0人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    數(shù)據(jù)庫系統(tǒng)是什么?數(shù)據(jù)庫系統(tǒng)概念數(shù)據(jù)庫設(shè)計(jì)資料免費(fèi)下載

      什么是概念結(jié)構(gòu)設(shè)計(jì)1.將需求分析得到的用戶需求抽象為信息結(jié)構(gòu)即概念模型的過程就是概念結(jié)構(gòu)設(shè)計(jì)2.概念結(jié)構(gòu)是各種數(shù)據(jù)模型的共同基礎(chǔ),它比
    發(fā)表于 09-07 14:34 ?1次下載
    <b class='flag-5'>數(shù)據(jù)庫</b>系統(tǒng)是什么?<b class='flag-5'>數(shù)據(jù)庫</b>系統(tǒng)概念<b class='flag-5'>之</b><b class='flag-5'>數(shù)據(jù)庫</b>設(shè)計(jì)資料免費(fèi)下載

    如何進(jìn)行數(shù)據(jù)庫設(shè)計(jì)?數(shù)據(jù)庫設(shè)計(jì)介紹和需求分析及結(jié)構(gòu)設(shè)計(jì)資料概述

    數(shù)據(jù)庫設(shè)計(jì)的任務(wù)是指根據(jù)需求研制數(shù)據(jù)庫結(jié)構(gòu)并應(yīng)用 數(shù)據(jù)庫的過程。數(shù)據(jù)庫設(shè)計(jì)內(nèi)容包括數(shù)據(jù)庫
    發(fā)表于 09-13 17:05 ?0次下載
    如何進(jìn)行<b class='flag-5'>數(shù)據(jù)庫</b>設(shè)計(jì)?<b class='flag-5'>數(shù)據(jù)庫</b>設(shè)計(jì)介紹和需求分析及<b class='flag-5'>結(jié)構(gòu)設(shè)計(jì)</b>資料概述

    如何使用PowerDesigner進(jìn)行數(shù)據(jù)庫靜態(tài)結(jié)構(gòu)設(shè)計(jì)?詳細(xì)資料概述

    把用戶需求抽象為概念模型即為概念結(jié)構(gòu)設(shè)計(jì)。 概念模型除了要求能反映客觀世界并且易于理解外,還要求其易于向數(shù)據(jù)模型(如關(guān)系模型)轉(zhuǎn)化。 概念模型獨(dú)立于具體的數(shù)據(jù)庫系統(tǒng),是整個(gè)數(shù)據(jù)庫設(shè)
    發(fā)表于 09-13 17:05 ?0次下載
    如何使用PowerDesigner進(jìn)行<b class='flag-5'>數(shù)據(jù)庫</b>靜態(tài)<b class='flag-5'>結(jié)構(gòu)設(shè)計(jì)</b>?詳細(xì)資料概述

    數(shù)據(jù)庫靜態(tài)結(jié)構(gòu)如何設(shè)計(jì)?詳細(xì)資料任務(wù)和方法說明

    任務(wù):實(shí)現(xiàn)數(shù)據(jù)庫設(shè)計(jì)新奧爾良方法中概念結(jié)構(gòu)設(shè)計(jì)和邏輯結(jié)構(gòu)設(shè)計(jì)
    發(fā)表于 09-27 15:32 ?1次下載
    <b class='flag-5'>數(shù)據(jù)庫</b>靜態(tài)<b class='flag-5'>結(jié)構(gòu)</b>如何設(shè)計(jì)?詳細(xì)資料任務(wù)和方法說明

    數(shù)據(jù)庫教程之如何進(jìn)行數(shù)據(jù)庫設(shè)計(jì)

    本文檔的主要內(nèi)容詳細(xì)介紹的是數(shù)據(jù)庫教程之如何進(jìn)行數(shù)據(jù)庫設(shè)計(jì)內(nèi)容包括了:1 數(shù)據(jù)庫設(shè)計(jì)概述 ,2 數(shù)據(jù)庫需求分析 ,3 數(shù)據(jù)庫
    發(fā)表于 10-19 10:41 ?21次下載
    <b class='flag-5'>數(shù)據(jù)庫</b>教程之如何進(jìn)行<b class='flag-5'>數(shù)據(jù)庫</b>設(shè)計(jì)

    數(shù)據(jù)庫設(shè)計(jì)的七大知識(shí)點(diǎn)總結(jié)詳細(xì)資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是數(shù)據(jù)庫設(shè)計(jì)的七大知識(shí)點(diǎn)總結(jié)包括了:1 數(shù)據(jù)庫設(shè)計(jì)概述2 需求分析3 概念結(jié)構(gòu)設(shè)計(jì)4 邏輯結(jié)構(gòu)設(shè)計(jì)5
    發(fā)表于 10-19 10:41 ?0次下載
    <b class='flag-5'>數(shù)據(jù)庫</b>設(shè)計(jì)的七大知識(shí)點(diǎn)總結(jié)詳細(xì)資料免費(fèi)下載

    數(shù)據(jù)庫學(xué)習(xí)入門資料如何進(jìn)行數(shù)據(jù)庫設(shè)計(jì)

    本文檔的主要內(nèi)容詳細(xì)介紹的是數(shù)據(jù)庫學(xué)習(xí)入門資料如何進(jìn)行數(shù)據(jù)庫設(shè)計(jì)主要內(nèi)容包括了:數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)的1 概述2 需求分析3 概念設(shè)計(jì)4 邏輯設(shè)
    發(fā)表于 10-25 16:29 ?14次下載
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>學(xué)習(xí)</b>入門資料<b class='flag-5'>之</b>如何進(jìn)行<b class='flag-5'>數(shù)據(jù)庫</b>設(shè)計(jì)

    數(shù)據(jù)庫學(xué)習(xí)入門資料數(shù)據(jù)庫的概念結(jié)構(gòu)詳細(xì)資料概述

    什么是概念結(jié)構(gòu)設(shè)計(jì) 將需求分析得到的用戶需求抽象為信息結(jié)構(gòu)即概念模型的過程就是概念結(jié)構(gòu)設(shè)計(jì) 概念結(jié)構(gòu)是各種數(shù)據(jù)模型的共同基礎(chǔ),它比
    發(fā)表于 10-25 16:29 ?0次下載
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>學(xué)習(xí)</b>入門資料<b class='flag-5'>之</b><b class='flag-5'>數(shù)據(jù)庫</b>的概念<b class='flag-5'>結(jié)構(gòu)</b>詳細(xì)資料概述

    數(shù)據(jù)庫概念結(jié)構(gòu)是如何設(shè)計(jì)的概念結(jié)構(gòu)設(shè)計(jì)資料概述

    本文檔的主要內(nèi)容詳細(xì)介紹的是數(shù)據(jù)庫概念結(jié)構(gòu)是如何設(shè)計(jì)的概念結(jié)構(gòu)設(shè)計(jì)資料概述主要內(nèi)容包括了:1 概念結(jié)構(gòu)2 概念結(jié)構(gòu)設(shè)計(jì)的方法與步驟3
    發(fā)表于 10-26 11:49 ?22次下載
    <b class='flag-5'>數(shù)據(jù)庫</b>概念<b class='flag-5'>結(jié)構(gòu)</b>是如何設(shè)計(jì)的概念<b class='flag-5'>結(jié)構(gòu)設(shè)計(jì)</b>資料概述

    數(shù)據(jù)庫的設(shè)計(jì)概念總結(jié)

    本文檔的主要內(nèi)容詳細(xì)介紹的是數(shù)據(jù)庫的設(shè)計(jì)概念總結(jié)主要內(nèi)容包括了:1.數(shù)據(jù)庫設(shè)計(jì)概述,2.需求分析,3.概念結(jié)構(gòu)設(shè)計(jì),4.邏輯結(jié)構(gòu)設(shè)計(jì),5.
    發(fā)表于 01-09 17:29 ?13次下載
    <b class='flag-5'>數(shù)據(jù)庫</b>的設(shè)計(jì)概念總結(jié)

    數(shù)據(jù)庫設(shè)計(jì)開發(fā)案例教程之數(shù)據(jù)庫設(shè)計(jì)的資料介紹

    本文檔的主要內(nèi)容詳細(xì)介紹的是數(shù)據(jù)庫設(shè)計(jì)開發(fā)案例教程之數(shù)據(jù)庫設(shè)計(jì)的資料介紹主要內(nèi)容包括了:1 數(shù)據(jù)庫設(shè)計(jì)概述,2 需求分析,3 概念結(jié)構(gòu)設(shè)計(jì),4 邏輯
    發(fā)表于 01-11 11:20 ?17次下載
    <b class='flag-5'>數(shù)據(jù)庫</b>設(shè)計(jì)開發(fā)案例教程之<b class='flag-5'>數(shù)據(jù)庫</b>設(shè)計(jì)的資料介紹

    Qt學(xué)習(xí)筆記數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)1

    數(shù)據(jù)庫也是應(yīng)用程序的重要部分,一個(gè)完整的應(yīng)用程序幾乎都包含數(shù)據(jù)庫。 當(dāng)前主流的數(shù)據(jù)庫有DB2、MYSQL、OCI、ODBC、SQLITE、TDS、Oracle。 Sqlite是一款輕型的
    的頭像 發(fā)表于 02-17 11:25 ?983次閱讀
    <b class='flag-5'>Qt</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b><b class='flag-5'>之</b><b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>結(jié)構(gòu)設(shè)計(jì)</b>1

    Qt學(xué)習(xí)筆記數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)2

    數(shù)據(jù)庫也是應(yīng)用程序的重要部分,一個(gè)完整的應(yīng)用程序幾乎都包含數(shù)據(jù)庫。 當(dāng)前主流的數(shù)據(jù)庫有DB2、MYSQL、OCI、ODBC、SQLITE、TDS、Oracle。 Sqlite是一款輕型的
    的頭像 發(fā)表于 02-17 11:25 ?680次閱讀
    <b class='flag-5'>Qt</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b><b class='flag-5'>之</b><b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>結(jié)構(gòu)設(shè)計(jì)</b>2

    Qt學(xué)習(xí)筆記數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)6

    Qt中,Qt為SQL數(shù)據(jù)庫提供支持的基本模塊。Qt SQL的API分為不同的層: ·驅(qū)動(dòng)層 ·SQL API層 ·用戶接口層
    的頭像 發(fā)表于 02-17 13:57 ?662次閱讀
    <b class='flag-5'>Qt</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b><b class='flag-5'>之</b><b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>結(jié)構(gòu)設(shè)計(jì)</b>6

    Qt學(xué)習(xí)筆記數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)7

    Qt中,Qt為SQL數(shù)據(jù)庫提供支持的基本模塊。Qt SQL的API分為不同的層: ·驅(qū)動(dòng)層 ·SQL API層 ·用戶接口層
    的頭像 發(fā)表于 02-17 13:57 ?665次閱讀
    <b class='flag-5'>Qt</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b><b class='flag-5'>之</b><b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>結(jié)構(gòu)設(shè)計(jì)</b>7
    主站蜘蛛池模板: 秋霞电影伦网理最新在线看片 | 中文字AV字幕在线观看 | [高清无码] 波多野结衣| 久久www99re在线播放 | 后入内射国产一区二区 | 九九大香尹人视频免费 | 78m成人亚洲 | 70岁妇女牲交色牲片 | TIMI1TV天美传媒在线观看 | 中文字幕日本在线mv视频精品 | 国产三级精品三级在线观看 | 精品无码一区二区三区不卡 | 多男同时插一个女人8p | 日韩毛片在线视频 | 日本强好片久久久久久AAA | 精选国产AV精选一区二区三区 | 风月宝鉴之淫乱英雄传 电影 | 一抽一出BGM免费50分动漫 | 欧美麻豆一精品一AV一免费 | 97草碰在线视频免费 | 精品免费视在线视频观看 | 亚洲成人在线免费观看 | 亚洲午夜无码久久久久蜜臀av | 秋霞电影网午夜鲁丝片 | 混乱家庭电影完整版在线看 | 翁公吮她的花蒂和奶水 | 秋霞午夜一级理论片久久 | 成年人免费观看的视频 | 2021国产精品久久久久精品免费网 | 秋霞鲁丝片Av无码 | 国产AV视频二区在线观看 | 无人区日本电影在线观看高清 | 老司机亚洲精品影院 | 中文字幕爆乳JULIA女教师 | 中文字幕在线观看亚洲日韩 | 国产亚洲精品久久久闺蜜 | 粉嫩极品国产在线观看 | 香蕉人人超人人超碰超国产 | 永久免费在线看mv | 午夜国产福利 | 一色屋精品亚洲香蕉网站 |

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品