PyQt5: chapter9-从数据库表中删除行

实例

  1. 创建基于Dialog without Buttons模板窗口
  2. 添加四个Label,两个LineEdit,三个PushButton部件
  3. 设定前三个Label的text为Email Address, Password, Are you Sure?
  4. 设定第四个Label的text为空
  5. 设定PushButton的text为Delete User,Yes,No
  6. 设定Line Edit的objectName为lineEditEmailAddress,lineEditPassword
  7. 设定PushButton的objectName为pushButtonDelete, pushButtonYes, pushButtonNo
  8. 设定第三个Label的object Name为labelSure
  9. 设定第四个Label的object Name为labelResponse
  10. 保存为demoDeleteUser.ui
  11. 使用pyuic生成demoDeleteUser.py
  12. 创建callDeleteUser.py,代码如下
import sqlite3, sys
from PyQt5.QtWidgets import QDialog, QApplication
from sqlite3 import Error
from cookbook_200504.demoDeleteUser import *

class MyForm(QDialog):
    def __init__(self):
        super().__init__()
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)
        self.ui.pushButtonDelete.clicked.connect(self.DeleteUser)
        self.ui.pushButtonYes.clicked.connect(self.ConfirmDelete)
        self.ui.labelSure.hide()
        self.ui.pushButtonYes.hide()
        self.ui.pushButtonNo.hide()
        self.show()
    def DeleteUser(self):
        selectStatement="SELECT * FROM Users where EmailAddress like'"+self.ui.lineEditEmailAddress.text()+"' and Password like '"+ self.ui.lineEditPassword.text()+"'"
        try:
            conn = sqlite3.connect("ECommerce.db")
            cur = conn.cursor()
            cur.execute(selectStatement)
            row = cur.fetchone()
            if row==None:
                self.ui.labelSure.hide()
                self.ui.pushButtonYes.hide()
                self.ui.pushButtonNo.hide()
                self.ui.labelResponse.setText("Sorry, Incorrect email address or password ")
            else:
                self.ui.labelSure.show()
                self.ui.pushButtonYes.show()
                self.ui.pushButtonNo.show()
                self.ui.labelResponse.setText("")
        except Error as e:
            self.ui.labelResponse.setText("Error in accessing user account")
        finally:
            conn.close()
    def ConfirmDelete(self):
        deleteStatement="DELETE FROM Users where EmailAddress like '"+self.ui.lineEditEmailAddress.text()+"' and Password like '"+ self.ui.lineEditPassword.text()+"'"
        try:
            conn = sqlite3.connect("ECommerce.db")
            cur = conn.cursor()
            with conn:
                cur.execute(deleteStatement)
                self.ui.labelResponse.setText("User successfully deleted")
        except Error as e:
            self.ui.labelResponse.setText("Error in deleting user account")
        finally:
            conn.close()
if __name__ == "__main__":
    app = QApplication(sys.argv)
    w = MyForm()
    w.show()
    sys.exit(app.exec())

猜你喜欢

转载自blog.csdn.net/weixin_43307431/article/details/105924773
今日推荐