91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

pyqt sql如何進行數據篩選

sql
小樊
82
2024-10-20 00:29:10
欄目: 云計算

在PyQt中,可以使用Qt SQL模塊來連接和操作數據庫,包括進行數據篩選。以下是一個簡單的示例,展示了如何使用PyQt5和Qt SQL模塊來連接SQLite數據庫并進行數據篩選:

首先,確保已經安裝了PyQt5和Qt SQL模塊。如果尚未安裝,可以使用以下命令進行安裝:

pip install PyQt5

接下來,創建一個簡單的PyQt應用程序,并連接到SQLite數據庫。在這個示例中,我們將連接到一個名為example.db的數據庫,該數據庫包含一個名為employees的表。

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QTableView, QVBoxLayout, QWidget, QPushButton, QLineEdit
import sqlite3
from PyQt5.QtSql import QSqlDatabase, QSqlQueryModel, QSqlQuery

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        # 創建一個QTableView控件來顯示數據
        self.tableView = QTableView()

        # 創建一個QLineEdit控件來輸入篩選條件
        self.filterEdit = QLineEdit()

        # 創建一個QPushButton控件來執行篩選操作
        self.filterButton = QPushButton("篩選")
        self.filterButton.clicked.connect(self.filterData)

        # 創建一個垂直布局并將控件添加到布局中
        layout = QVBoxLayout()
        layout.addWidget(self.filterEdit)
        layout.addWidget(self.filterButton)

        # 創建一個QWidget控件并將布局添加到控件中
        container = QWidget()
        container.setLayout(layout)

        # 將QTableView控件添加到主窗口的中心區域
        self.setCentralWidget(container)

        # 連接到SQLite數據庫
        db = QSqlDatabase.addDatabase("QSQLITE")
        db.setHostName("")
        db.setDatabaseName("example.db")
        db.open()

        # 創建一個QSqlQueryModel控件來存儲查詢結果
        self.queryModel = QSqlQueryModel()

        # 創建一個QSqlQuery控件來執行SQL查詢
        self.query = QSqlQuery()
        self.query.exec_("SELECT * FROM employees")

        # 將查詢結果設置到QSqlQueryModel控件中
        self.queryModel.setQuery(self.query)

        # 將QSqlQueryModel控件設置為QTableView控件的模型
        self.tableView.setModel(self.queryModel)

    def filterData(self):
        # 獲取篩選條件
        filterText = self.filterEdit.text()

        # 創建一個新的QSqlQuery控件
        query = QSqlQuery()

        # 如果篩選條件不為空,則添加WHERE子句
        if filterText:
            query.prepare("SELECT * FROM employees WHERE name LIKE :name")
            query.bindValue(":name", "%" + filterText + "%")
        else:
            query.prepare("SELECT * FROM employees")

        # 執行查詢并更新QSqlQueryModel控件中的數據
        query.exec_()
        self.queryModel.setQuery(query)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    mainWindow = MainWindow()
    mainWindow.show()
    sys.exit(app.exec_())

在這個示例中,我們創建了一個簡單的界面,其中包含一個用于輸入篩選條件的QLineEdit控件和一個用于執行篩選操作的QPushButton控件。當用戶點擊按鈕時,將調用filterData方法來執行篩選操作。

filterData方法中,我們首先獲取篩選條件,然后創建一個新的QSqlQuery控件。如果篩選條件不為空,我們會在SQL查詢中添加一個WHERE子句,并使用LIKE操作符來匹配包含篩選條件的名稱。如果篩選條件為空,我們將執行一個簡單的SELECT查詢。

最后,我們執行查詢并更新QSqlQueryModel控件中的數據,從而刷新QTableView控件中顯示的數據。

0
吐鲁番市| 贡山| 景洪市| 沂南县| 克山县| 太仆寺旗| 九寨沟县| 诸暨市| 北京市| 麦盖提县| 开平市| 怀安县| 石泉县| 洮南市| 西宁市| 集贤县| 镇平县| 资源县| 广宁县| 阜康市| 玉树县| 大冶市| 吉林市| 汉川市| 依安县| 无极县| 汕尾市| 沈阳市| 福鼎市| 清远市| 广水市| 乡宁县| 垫江县| 苏州市| 望谟县| 商河县| 通道| 仙游县| 青铜峡市| 丘北县| 正定县|