Estoy tratando de obtener datos de postgreSQL usando la declaración if en QTableWidget, sin embargo, cuando estoy aplicando una variable y asignando un valor nulo (ninguno), no se muestra nada en mi tabla. Y no puedo usar la cláusula where con QlineEdit. ¿Hay alguna forma posible de reproducir este código para que funcione correctamente?

def LoadData(self):
    name = self.Name_search.text()
    conn = psycopg2.connect(
            database = "postgres",
            user = "postgres",
            password = "**********",
            host = "localhost",
            port = "5432"
            ) 
    if name is None:
    with conn:
        cur = conn.cursor()
        rows = cur.execute("Select * from swimming_pool_users where name = '%s'",(name))
        data = cur.fetchall()
        for row in data:
            self.AddTable(row)
        cur.close()
        
def AddTable(self,columns):
    rowPosition = self.tableWidget2.rowCount()
    self.tableWidget2.insertRow(rowPosition)
    for i, column in enumerate(columns):
        self.tableWidget2.setItem(rowPosition, i, QtWidgets.QTableWidgetItem(str(column)))
def ClearTableData (self):
    while (self.tableWidget2.rowCount() > 0):
        self.tableWidget2.removeRow(0)
0
Jejemar 25 ago. 2020 a las 20:39

1 respuesta

La mejor respuesta

Realmente no entiendo qué quiere exactamente, pero este es un ejemplo de cómo mostrar datos de la base de datos postgresql a un QtableWidgit

def exemple_Qtablewidgit(self):
        connection = psycopg2.connect(user="postgres",
                               password="password",
                               host="localhost",
                               database="database")
        self.cur = connection.cursor()

        name = self.lineEdit.text()

        self.cur.execute(''' SELECT * FROM exemple WHERE name =%s''', (name,))
        data = self.cur.fetchall()

        if data :
            self.tableWidget.setRowCount(0)

            self.tableWidget.insertRow(0)
            for row, form in enumerate(data):
                for column , item in enumerate(form):
                    self.tableWidget.setItem(row, column, QTableWidgetItem(str(item)))
                    column += 1 

                row_position  = self.tableWidget.rowCount()
                self.tableWidget_3.insertRow(row_position)
0
marc_s 7 sep. 2020 a las 21:01