下面是我的代码和重复插入数据的图片
def add(book: Book) -> int:
con = None
try:
con = dbUtil.getCon()
cursor = con.cursor()
# 插入数据
cursor.execute(
"DECLARE @B INT SET @B=(SELECT TOP 1 ID FROM t_book order by ID DESC)DBCC CHECKIDENT('t_book',"
"RESEED,@B)")
sql = f"insert into t_book (bookName,author,age,sex,price,TID, bookDesc) values ('{book.bookName}','{book.author}','{book.age}','{book.sex}',{book.price},{book.TID},'{book.bookDesc}');"
cursor.execute(sql)
con.commit()
return cursor.rowcount
except Exception as e:
print(f"插入数据时发生错误: {e}")
if con is not None:
con.rollback()
return 0
finally:
dbUtil.closeCon(con)
def add(self):
"""
添加图书信息
:return:
"""
bookName = self.bookNameInput.text()
if bookName.strip() == "":
QMessageBox.warning(None, '系统提示', '图书名称不能为空!')
return
author = self.authorInput.text()
if author.strip() == "":
QMessageBox.warning(None, '系统提示', '图书作者不能为空!')
return
age = self.ageInput.text()
if age.strip() == "":
QMessageBox.warning(None, '系统提示', '年龄不能为空!')
return
sex = ''
if self.manRadio.isChecked():
sex = '男'
else:
sex = '女'
price = self.priceInput.text()
if price.strip() == "":
QMessageBox.warning(None, '系统提示', '图书价格不能为空!')
return
TID = self.bookTypeComboBox.currentData()
if bookName == -1:
QMessageBox.warning(None, '系统提示', '请选择图书类别!')
return
bookDesc = self.bookDescInput.toPlainText()
book = Book.my_construtor(bookName, author, age, sex, price, TID, bookDesc)
if bookDao.add(book) is not None and bookDao.add(book) > 0:
QMessageBox.information(None, '系统提示', '添加成功!')
self.reset()
else:
QMessageBox.warning(None, '系统提示', '添加失败!')
def reset(self):
self.bookNameInput.setText("")
self.authorInput.setText("")
self.ageInput.setText("")
self.manRadio.setChecked(True)
self.priceInput.setText("")
self.bookTypeComboBox.setCurrentIndex(0)
self.bookDescInput.setPlainText("")
