Я работаю над проектом python, который можно подключить к файлу базы данных sqlite3, а также получить и обновить базу данных. Для GUI я использую конструктор PyQT5. Используя конструктор Qt, я создал таблицу, которая может отображать данные, извлеченные из файла базы данных.
В базе данных каждый элемент имеет уникальный номер элемента, и, введя номер элемента в программу, мы можем получить всю информацию об этом элементе и отображать его в пользовательском интерфейсе в виде списка.
Это изображение пользовательского интерфейса
Я написал код, который создает новый row и устанавливает эту вновь созданную строку в качестве первого аргумента self.tableWidget.setItem()
, чтобы каждый раз, когда новый элемент отображался в пользовательском интерфейсе, так что все элементы составляли список.
Но здесь возникает проблема. Если я введу неправильный номер элемента, строка все равно будет создана, но, поскольку для этого номера элемента нет элемента, строка останется пустой. И затем, если я введу правильный номер элемента, информация об элементе отобразится в следующей строке, оставив после себя ужасную пустую строку. вот так
Фрагмент кода:
def load_data(self):
self.mycursor.execute('SELECT *FROM GOODS WHERE ITEM_NO=:itm_num',{'itm_num':int(self.text)})
result = self.mycursor.fetchall()
try:
numRows = self.tableWidget.rowCount()
self.tableWidget.insertRow(numRows)
print(numRows)
for column_number in range(4):
self.data=result[0]
self.tableWidget.setItem(numRows,column_number,QtWidgets.QTableWidgetItem(str(self.data[column_number])))
print(numRows)
except:
print(sys.exc_info()[0])
finally:
self.connection.close()
Как мне остановить создание новой строки, если заданный номер элемента неверен?