python - PyQt5 中的 mssql 数据类型更改为浮点数和日期更改 =PyQt5.QtCore.QDateTime(yyyy, mm, dd, 0, 0)
问题描述
大家好,我已经连接了 mssql 服务器并将表数据显示到 pyqt5 tablewidget.everything 工作正常。但我可以看到某些列的数据类型发生了变化(主要是 int 类型)。并且日期列也更改为 PyQt5.QtCore.QDateTime(2016, 2, 4, 0, 0)。从已经是浮动类型的表中,我对此没有任何问题。那么,如何解决呢?我的意思是我想在 tableWidget 中显示与 Mssql 数据相同的数据。
注意1:我在 query_string 中使用了 Convert(int,iinsightAccountID) ,它起作用了。但我不想手动一一转换,因为我有太多列。 Note2: : 我无法在 mssql 服务器中更改 dataType,它总是正确的。
主窗口.py
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication,QWidget,QPushButton,QMenu
from PyQt5 import QtCore, QtGui, QtWidgets
from window import Ui_MainWindow
from eventHandler import *
class MainWindow(QtWidgets.QMainWindow,Ui_MainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.setupUi(self)
self.positionButton.clicked.connect(self.poscall)
def poscall(self):
input_value=self.lineEdit.text()
type_value=str(self.comboBox.currentText()
positionData=loadPosition(input_value,type_value)
header_list = positionData[0]
value_list = positionData[1]
no_rows = len(value_list)
no_columns= len(header_list)
self.tableWidget.setRowCount(no_rows)
self.tableWidget.setColumnCount(no_columns)
self.tableWidget.setHorizontalHeaderLabels(tuple(header_list))
self.tableWidget.setSelectionMode(QAbstractItemView.SingleSelection)
self.tableWidget.setSelectionBehavior(QAbstractItemView.SelectRows)
for row in range(no_rows):
for col in range(no_columns):
self.tableWidget.setItem(row,col,QTableWidgetItem(str(value_list[row][col])))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec_())
事件处理程序.py
from database import *
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import *
def loadPosition(input_value,type_value):
if type_value=="AccountID":
query_string="SELECT iinsightaccountid,dtpositiondate,* from insightProcessing.dbo.insightPositions(nolock) where iinsightAccountID="+input_value
mydata=loadData(query_string)
header_list = mydata[0]
value_list = mydata[1]
return (mydata)
if type_value=="Account Number":
query_string="SELECT top 100 dtPositionDate,iinsightAccountID from insightProcessing.dbo.insightPositions(nolock) where vchCustodianAccountNumber="+input_value
mydata=loadData(query_string)
header_list = mydata[0]
value_list = mydata[1]
return (mydata)
数据库.py
解决方案
推荐阅读
- c - 如何检查矩阵中的哪些行和列等于哪些行和列
- powershell - 为什么“abc [2] d c”-match“bc [2]”是假的?
- ruby-on-rails - 如何避免破坏删除较早的相关对象
- azure - 从 Azure 数据工厂 (ADF) 查找 Azure AD
- sql - 是否可以从下到上填充 GridView,而不是从上到下?
- bash - 无法在 VS 代码中运行飞镖程序
- go - Goland:如何使用自定义 modfile 而不是 go.mod?
- android - 改造 Android 响应 - 在 POST 400 上返回 HTML 而不是 JSON
- c++ - C++Concurrency in action:Listing7.6(An implementation of pop() using hazard pointers)真的能检测到无法回收的节点吗?
- c# - SqlDataReader 只返回一行