Qt函數:QSqlTableModel與QTableView連結

在上一篇Qt入門篇(4): 建立存取資料庫的類別,我主要設計資料庫管理類別,然後在主程式初始化此類別,也就是說使用物件存取資料庫.而這次我將在類別YTDBConnection中的增加成員函數『getTable』將從資料庫Taiwan撈取資料表「Taiwan_PostCode」進行篩選後,利用QTableView顯示其資料.

圖一.存取資料庫類別YTDBConnection

在這次範例,我使用SQLiteStudio在SQLite資料庫Taiwan新增資料表「Taiwan_PostCode」,主要紀錄郵遞區號,縣市,鄉鎮區和鄉鎮區英文,你可以到GitHub進行下載與練習.

\圖二.資料庫Taiwan增加資料表「Taiwan_PostCode」

程式碼



教程

  1. 首先,請先宣告QSqlTableModel(資料庫專用的表單),然後選擇要從資料庫Taiwan抓取資料表,這裡以「Taiwan_PostCode」為例.

  2. QSqlTableModel *model=new QSqlTableModel(0,db);
    model->setTable("Taiwan_PostCode");
    

  3. 接下來,由於輸入參數字串currentText是QComboBox目前顯示的內容,這裡的範例是使用台灣縣市,因此使用篩選只取出此縣市相關資訊.

  4. model->setFilter("City_CName='"+currentText+"'");
    

  5. 然後,請將輸入參數QTableView設定資料來源後,即可顯示所抓取的資料.

  6.  srcTable->setModel(model);
    

  7. 最後,以下為執行結果.


Reference:
1. QtSql 5.0: QSqlTableModel Class

留言

這個網誌中的熱門文章

VirtualBox教學:重設硬碟(.vdi)大小(上)

VirtualBox教學:重設硬碟(.vdi)大小(下)

VirtualBox教學: 新增Windows7虛擬電腦(下)