Привет всем, я подключился к серверу ms sql и отображаю данные таблицы в pyqt5 tablewidget.everything работает нормально. но я вижу, что тип данных изменяется для некоторых столбцов (которые в основном типа int). и столбец даты также изменяется на PyQt5.QtCore.QDateTime (2016, 2, 4, 0, 0). из таблицы, которая уже имеет тип float, у меня нет проблем с этим. Итак, как решить эту проблему? Я имею в виду, я хочу показать данные в tableWidget так же, как Ms sql data.
Note1: Я использовал Convert (int, iinsightAccountID) в query_string, это работало. но я не хочу конвертировать один за другим столбец вручную, потому что у меня слишком много столбцов. Примечание 2: : я не могу изменить тип данных на сервере ms sql, он всегда корректен.
mainWindow.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_())
eventHandler.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)
database.py