Cont. DB Project ------- An Online Retail DB APP

Cont.

在这里插入图片描述

Function

item 之 show

def show_shopItems(shopId):
   cursor,db=connect_database()
   sql = f"SELECT * FROM shopitem WHERE ShopId={
      
      shopId}"
   if shopId == '' or shopId == 'input shop ID here':
      sql="SELECT * FROM shopitem"
   results=""
   try:

      cursor.execute(sql)
      results = cursor.fetchall()
      for row in results:
         shopId = row[0]
         ItemName = row[1]
         Price = row[2]
         ItemId = row[3]
         Keywords = row[4]
   except:
      print ("Error: unable to fetch data")
      return None
   db.close()
   return results

item 之 add

def add_Item(message):
   message=message.split(',')
   ShopId,ItemName,Price,ItemId,Keywords=message[0:5]
   print(message)
   cursor, db = connect_database()
   sql = f"INSERT INTO shopitem\
            VALUES('{ShopId}','{ItemName}','{Price}','{ItemId}','{Keywords}');"
   print(sql)
   try:
      cursor.execute(sql)
      db.commit()
   except:
      print("insert error")
      db.rollback()
      return "insert error"
   db.close()
   return "insert success"

UI Design

#show items
self.ui.showAllItems_button.clicked.connect(self.show_shopItems)
#add a item
self.ui.addNewItem_button.clicked.connect(self.getItemMessage)

item show

def show_shopItems(self):
        # clean this widget
        self.ui.itemManagement_table.setRowCount(0)
        # set widget colummn as 5
        self.ui.itemManagement_table.setColumnCount(5)
        self.ui.itemManagement_table.setHorizontalHeaderLabels(['ShopId', 'ItemName', 'Price', 'ItemId','Keywords'])
        # Horizontal autofill
        self.ui.itemManagement_table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
        items = functions.show_shopItems(self.ui.shopItems_search_text.toPlainText())

        for i in range(len(items)):
            item = items[i]
            row = self.ui.itemManagement_table.rowCount()
            self.ui.itemManagement_table.insertRow(row)
            for j in range(len(item)):
                item = QTableWidgetItem(str(items[i][j]))
                self.ui.itemManagement_table.setItem(row, j, item)

item message

  def getItemMessage(self):
        text, ok = QInputDialog.getText(self, 'Text Input Dialog', 'input item message format as (ShopId,ItemName,Price,ItemId,keywords)')
        itemMessage=""
        print(text)
        if ok and text:
            itemMessage=str(text)
        message=functions.add_Item(itemMessage)
        QMessageBox.about(self, "Message", message)

猜你喜欢

转载自blog.csdn.net/weixin_45646640/article/details/130219904
DB
今日推荐