pyqt调取sqlserver中的数据并显示
时间: 2024-02-17 14:09:12 浏览: 154
qt 操作 sql server 数据库
4星 · 用户满意度95%
首先,你需要安装 `pyodbc` 模块,它可以用于连接 SQL Server 数据库。
然后,你需要创建一个连接对象,使用以下代码:
```python
import pyodbc
conn = pyodbc.connect('DRIVER={SQL Server};SERVER=your_server_name;DATABASE=your_database_name;UID=your_username;PWD=your_password')
```
替换 `your_server_name`、`your_database_name`、`your_username` 和 `your_password` 为你的 SQL Server 数据库的信息。
接下来,你可以使用 `cursor` 对象执行 SQL 查询语句,并使用 `fetchall()` 方法获取查询结果。例如,如果你要查询 `employees` 表中的所有数据,可以使用以下代码:
```python
cursor = conn.cursor()
cursor.execute('SELECT * FROM employees')
result = cursor.fetchall()
for row in result:
print(row)
```
最后,你可以使用 pyqt 中的控件(如 `QTableWidget`)显示查询结果。这需要你创建一个布局,并将控件添加到布局中。以下是一个示例代码:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QVBoxLayout, QWidget
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle('SQL Server Data')
self.setGeometry(100, 100, 800, 600)
widget = QWidget()
layout = QVBoxLayout()
table = QTableWidget()
cursor = conn.cursor()
cursor.execute('SELECT * FROM employees')
result = cursor.fetchall()
table.setRowCount(len(result))
table.setColumnCount(len(result[0]))
for i, row in enumerate(result):
for j, col in enumerate(row):
table.setItem(i, j, QTableWidgetItem(str(col)))
layout.addWidget(table)
widget.setLayout(layout)
self.setCentralWidget(widget)
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
```
这将创建一个包含查询结果的表格,并将其显示在 PyQt 窗口中。
阅读全文