04-05-2018, 10:00 PM
Hola a todos, estoy teniendo inconvenientes para recuperar la información de una caja de texto QlineEdit (txt_dni), la cual posteriormente utilizo para efectuar una consulta. Al ejecutar el programa, no trae la información referida al DNI escrito. Desde ya agradezco sus aportes:
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QDialog, QGridLayout, QMessageBox, QLabel, QPushButton, QLineEdit, QSpinBox, QTableWidget, QTableWidgetItem
from PyQt5 import uic
from PyQt5.QtSql import QSqlDatabase, QSqlQuery
class Dialogo(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
uic.loadUi("Principal.ui", self)
self.showMaximized()
self.txt_dni = QLineEdit(self)
self.db = QSqlDatabase.addDatabase('QMYSQL')
self.db.setHostName("localhost")
self.db.setDatabaseName("engage")
self.db.setUserName("engage")
self.db.setPassword("engage")
self.btn_buscar.clicked.connect(self.buscar)
def buscar(self):
estado = self.db.open()
if estado == False:
QMessageBox.warning(self, "Error", self.db.lastError().text(), QMessageBox.Discard)
else:
self.table.setColumnCount(6)
self.table.setHorizontalHeaderLabels(['Apellido y Nombre', 'Tipo y Nro doc', 'Nro Tarjeta', 'Cuenta', 'Producto', 'Nro Fidelidad'])
dni = self.txt_dni.text()
row = 0
sql = "SELECT * FROM clientes WHERE tipo_nrodni = '%s'" % dni
query = QSqlQuery(sql)
while query.next():
self.table.insertRow(row)
ApellidoNombre = QTableWidgetItem(str(query.value(0)))
TipoDoc = QTableWidgetItem(str(query.value(1)))
NroTarjeta = QTableWidgetItem(str(query.value(2)))
Cuenta = QTableWidgetItem(str(query.value(3)))
Producto = QTableWidgetItem(str(query.value(4)))
NroFidelidad = QTableWidgetItem(str(query.value(5)))
self.table.setItem(row, 0, ApellidoNombre)
self.table.setItem(row, 1, TipoDoc)
self.table.setItem(row, 2, NroTarjeta)
self.table.setItem(row, 3, Cuenta)
self.table.setItem(row, 4, Producto)
self.table.setItem(row, 5, NroFidelidad)
row = row + 1
self.db.close()
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QDialog, QGridLayout, QMessageBox, QLabel, QPushButton, QLineEdit, QSpinBox, QTableWidget, QTableWidgetItem
from PyQt5 import uic
from PyQt5.QtSql import QSqlDatabase, QSqlQuery
class Dialogo(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
uic.loadUi("Principal.ui", self)
self.showMaximized()
self.txt_dni = QLineEdit(self)
self.db = QSqlDatabase.addDatabase('QMYSQL')
self.db.setHostName("localhost")
self.db.setDatabaseName("engage")
self.db.setUserName("engage")
self.db.setPassword("engage")
self.btn_buscar.clicked.connect(self.buscar)
def buscar(self):
estado = self.db.open()
if estado == False:
QMessageBox.warning(self, "Error", self.db.lastError().text(), QMessageBox.Discard)
else:
self.table.setColumnCount(6)
self.table.setHorizontalHeaderLabels(['Apellido y Nombre', 'Tipo y Nro doc', 'Nro Tarjeta', 'Cuenta', 'Producto', 'Nro Fidelidad'])
dni = self.txt_dni.text()
row = 0
sql = "SELECT * FROM clientes WHERE tipo_nrodni = '%s'" % dni
query = QSqlQuery(sql)
while query.next():
self.table.insertRow(row)
ApellidoNombre = QTableWidgetItem(str(query.value(0)))
TipoDoc = QTableWidgetItem(str(query.value(1)))
NroTarjeta = QTableWidgetItem(str(query.value(2)))
Cuenta = QTableWidgetItem(str(query.value(3)))
Producto = QTableWidgetItem(str(query.value(4)))
NroFidelidad = QTableWidgetItem(str(query.value(5)))
self.table.setItem(row, 0, ApellidoNombre)
self.table.setItem(row, 1, TipoDoc)
self.table.setItem(row, 2, NroTarjeta)
self.table.setItem(row, 3, Cuenta)
self.table.setItem(row, 4, Producto)
self.table.setItem(row, 5, NroFidelidad)
row = row + 1
self.db.close()