首页 > 解决方案 > 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

标签: pythonpyqt5

解决方案


推荐阅读