橙子的PyQt5学习笔记_连接SQL Server数据库

这篇博客详细记录了使用PyQt5库如何连接到SQL Server数据库的操作步骤,目前内容聚焦于连接部分,未来可能会扩展涵盖更多相关功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目前笔记还不够完善,只包含连接部分,后续可能还要补充其它内容

"sip, QtGui, QtWidgets 是pyinstaller打包时必要的模块"
import sys, sip
from PyQt5.QtSql import QSqlDatabase
from PyQt5.QtCore import QCoreApplication
from PyQt5 import QtGui
from PyQt5 import QtWidgets
"""
创建一个QCoreApplication实例,有了这个实例才能加载数据库驱动
如果程序中还用到其它GUI控件,可以使用PyQt5.QtWidgets.QApplication来代替
"""
app = QCoreApplication(sys
### PyQt5连接SQL Server数据库的方法 在PyQt5中,可以通过`QSqlDatabase`类来实现与SQL Server数据库连接。以下是详细的说明以及示例代码。 #### 1. 设置数据库驱动 为了能够连接SQL Server数据库,需要确保安装并配置了支持SQL Server的ODBC驱动程序。通常情况下,可以选择`QODBC`作为数据库驱动[^2]。 #### 2. 创建数据库对象 通过调用`QSqlDatabase.addDatabase()`函数创建一个新的数据库连接对象,并指定使用的数据库驱动类型为`QODBC`。 #### 3. 配置数据库连接参数 使用以下方法设置数据库连接的相关参数: - `setHostName`: 指定数据库服务器地址。 - `setPort`: 如果适用,指定端口号(默认为1433)。 - `setDatabaseName`: 对于SQL Server,该参数通常是DSN名称或者完整的连接字符串。 - `setUserName`: 提供用于登录数据库的用户名。 - `setPassword`: 提供对应的密码。 这些操作必须在调用`open()`之前完成,否则会失效[^2]。 #### 4. 打开数据库连接 调用`db.open()`尝试建立实际的数据库连接。如果成功,则可以继续执行查询或其他操作;失败则需检查错误原因。 #### 示例代码 下面是一个简单的Python脚本展示如何利用PyQt5框架下的`QSqlDatabase`模块去连接SQL Server: ```python import sys from PyQt5.QtSql import QSqlDatabase, QSqlQuery from PyQt5.QtWidgets import QApplication, QMessageBox def create_connection(): db = QSqlDatabase.addDatabase('QODBC') # 使用 ODBC 驱动器 db.setHostName("your_server_name_or_ip") # 替换为您的 SQL Server 地址 db.setPort(1433) # 默认端口 db.setDatabaseName("Driver={SQL Server};Server=your_server_name;Database=your_database_name;") # DSN 或者完整连接串形式 db.setUserName("your_username") # 用户名 db.setPassword("your_password") # 密码 if not db.open(): QMessageBox.critical(None, "Cannot open database", f"Unable to establish a database connection.\n{db.lastError().text()}") return False query = QSqlQuery() query.exec_("SELECT TOP (1000) * FROM your_table_name") while query.next(): record = query.record() for i in range(record.count()): print(f"{record.fieldName(i)}: {query.value(i)}") if __name__ == '__main__': app = QApplication(sys.argv) if not create_connection(): sys.exit(-1) sys.exit(app.exec_()) ``` 注意:以上代码中的占位符应替换为您自己的具体信息,比如服务器名字、数据库名、表名等等。 #### 关键点解释 - **驱动选择**: 此处选择了`QODBC`, 因此需要确保系统已正确安装对应版本的Microsoft ODBC Driver for SQL Server。 - **安全性考虑**: 实际部署时不应硬编码敏感数据如用户名和密码,建议采用更安全的方式存储凭证。 - **异常处理**: 添加适当的错误检测机制可以帮助快速定位问题所在。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值