pyqt SQL Server 数据库查询

一、概述

本项目旨在开发一个基于 Python 和 PyQt6 的数据库查询工具,该工具能够连接到 SQL Server 数据库,显示数据库中的表名,支持用户输入 SQL 查询语句进行数据查询,并将查询结果展示在表格中。同时,为了提升用户体验,对界面进行了一系列优化,包括调整控件大小、设置选中项颜色、放大查询按钮以及改变查询输入区域背景颜色等。
在这里插入图片描述

二、功能实现

2.1 数据库连接

  • 连接字符串:使用固定的连接字符串 'DRIVER={SQL Server};SERVER=LEGENDLI;DATABASE=testbase;UID=sa;PWD=1' 连接到 SQL Server 数据库。
  • 查询表名:通过执行 SQL 语句 SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' 查询数据库中的所有表名,并将结果显示在 QListWidget 中。

2.2 界面布局

  • 主布局:采用 QVBoxLayout 作为主布局,从上到下依次排列表列表、查询输入区域和查询结果表格。
  • 表列表:使用 QListWidget 显示数据库中的表名,设置固定高度为 100 像素,并将选中项的背景颜色设置为蓝色,文字颜色设置为白色。
  • 查询输入区域:包含一个 QLineEdit 用于输入 SQL 查询语句,以及一个 QPushButton 用于触发查询操作。查询按钮的大小设置为原来的两倍,查询输入区域的背景颜色设置为黄色。
  • 查询结果表格:使用 QTableWidget 显示查询结果,设置选择行为为整行选择,并将选中行的背景颜色设置为蓝色,文字颜色设置为白色。

2.3 查询功能

  • 无输入查询:当用户点击查询按钮且输入框为空时,检查 QListWidget 中是否有选中的表名。如果有,则自动生成查询该表所有数据的 SQL 语句并执行。
  • 自定义查询:用户可以在输入框中输入自定义的 SQL 查询语句,点击查询按钮后执行该语句,并将结果显示在表格中。

三、代码实现

3.1 类和方法

  • DatabaseQueryApp:继承自 QWidget,是整个应用程序的主窗口类。
    • __init__ 方法:初始化界面和数据库连接。
    • initUI 方法:创建界面布局,设置控件属性和样式。
    • connect_to_database 方法:连接到 SQL Server 数据库,查询表名并显示在 QListWidget 中。
    • execute_query 方法:根据用户输入的查询语句或选中的表名执行查询操作,并将结果显示在表格中。

3.2 关键代码片段

# 设置 QListWidget 选中项整行变蓝色
self.table_list.setStyleSheet("QListWidget::item:selected { background-color: blue; color: white; }")

# 设置查询按钮大小为原来的两倍
current_width = self.query_button.sizeHint().width()
current_height = self.query_button.sizeHint().height()
self.query_button.setFixedSize(current_width * 2, current_height * 2)

# 设置查询输入区域背景颜色为黄色
query_input_container = QWidget()
query_input_container.setLayout(query_input_layout)
query_input_container.setStyleSheet("background-color: yellow;")

# 设置 QTableWidget 选中行整行变蓝色
self.result_table.setStyleSheet("QTableWidget::item:selected { background-color: blue; color: white; }")

全部代码

import</
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值