PyQt5: chapter9-search for specific information in database tables

Instance

  1. Create a template window based on Dialog without Buttons
  2. Add five Labels, four LineEdits, and a PushButton component
  3. Set the text of the first three Labels to Enter database name, Enter table name, Email Address
  4. Set the text of the fourth Label to be empty, and the text of the fifth Label to Password
  5. Set the text of PushButton to Search
  6. 设定Line Edit的objectName为lineEditDBName, lineEditTableName, lineEditEmailAddress, lineEditPassword
  7. Set the objectName of PushButton to pushButtonSearch
  8. Set the object Name of the fourth Label to labelResponse
  9. Save as demoSearchRows.ui
  10. Use pyuic to generate demoSearchRows.py
  11. Create callSearchRows.py, the code is as follows
import sys,sqlite3
from PyQt5.QtWidgets import QDialog,QApplication
from sqlite3 import Error
from cookbook_200504.demoSearchRows import *

class MyForm(QDialog):
    def __init__(self):
        super().__init__()
        self.ui=Ui_Dialog()
        self.ui.setupUi(self)
        self.ui.pushButtonSearch.clicked.connect(self.SearchRows)
        self.show()
    def SearchRows(self):
        sqlStatement="SELECT Password FROM "+self.ui.lineEditTableName.text()+"  where EmailAddress like'"+self.ui.lineEditEmailAddress.text()+"'"
        try:
            conn=sqlite3.connect(self.ui.lineEditDBName.text()+".db")
            cur=conn.cursor()
            cur.execute(sqlStatement)
            row=cur.fetchone()
            if row==None:
                self.ui.labelResponse.setText("Sorry, No User found with this email address")
                self.ui.lineEditPassword.setText("")
            else:
                self.ui.labelResponse.setText("Email Address Found, Password of this User is :")
                self.ui.lineEditPassword.setText(row[0])
        except Error as e:
            self.ui.labelResponse.setText("Error in accessing row")
        finally:
            conn.close()
if __name__=="__main__":
    app=QApplication(sys.argv)
    w=MyForm()
    w.show()
    sys.exit(app.exec())

 

Guess you like

Origin blog.csdn.net/weixin_43307431/article/details/105924696