parent
ef886dc3e0
commit
69eb784504
@ -1,141 +0,0 @@
|
|||||||
'''
|
|
||||||
import sys
|
|
||||||
import pymysql
|
|
||||||
from PyQt5.QtCore import Qt
|
|
||||||
from PyQt5.QtGui import QStandardItemModel, QStandardItem
|
|
||||||
from PyQt5.QtWidgets import QApplication, QMainWindow, QTableView
|
|
||||||
|
|
||||||
class MainWindow(QMainWindow):
|
|
||||||
def __init__(self):
|
|
||||||
super().__init__()
|
|
||||||
self.setWindowTitle("Personal Information")
|
|
||||||
# 创建 QTableView delete
|
|
||||||
self.table_view = QTableView(self)
|
|
||||||
self.setCentralWidget(self.table_view)
|
|
||||||
# 设置模型
|
|
||||||
self.model = QStandardItemModel(0, 7)
|
|
||||||
self.model.setHorizontalHeaderLabels(['身份证号','用户名', '性别', '用户年龄', '电话号码','户籍','密码'])
|
|
||||||
self.table_view.setModel(self.model)
|
|
||||||
# 加载数据
|
|
||||||
self.load_data()
|
|
||||||
# 使表格可编辑
|
|
||||||
self.table_view.setEditTriggers(QTableView.AllEditTriggers)
|
|
||||||
# 捕捉模型数据改变信号
|
|
||||||
self.model.itemChanged.connect(self.update_database)
|
|
||||||
|
|
||||||
|
|
||||||
#connect mysql and enquire database data
|
|
||||||
def load_data(self):
|
|
||||||
try:
|
|
||||||
connection = pymysql.connect(
|
|
||||||
host='127.0.0.1',
|
|
||||||
user='root',
|
|
||||||
password='20021220',
|
|
||||||
database='pybank'
|
|
||||||
)
|
|
||||||
cursor = connection.cursor()
|
|
||||||
cursor.execute("SELECT * FROM customer")
|
|
||||||
data = cursor.fetchall()
|
|
||||||
cursor.close()
|
|
||||||
connection.close()
|
|
||||||
for row in data:
|
|
||||||
items = [QStandardItem(str(field)) for field in row]
|
|
||||||
for item in items:
|
|
||||||
item.setTextAlignment(Qt.AlignCenter)
|
|
||||||
self.model.appendRow(items)
|
|
||||||
except Exception as e:
|
|
||||||
print(f"Error loading data: {e}")
|
|
||||||
|
|
||||||
def update_database(self, item):
|
|
||||||
row = item.row()
|
|
||||||
col = item.column()
|
|
||||||
new_value = item.text()
|
|
||||||
|
|
||||||
print(row,col,new_value)
|
|
||||||
try:
|
|
||||||
# 获取主键(第一列是主键)
|
|
||||||
primary_key = self.model.item(row, 0).text()
|
|
||||||
#map column names
|
|
||||||
columns=['cid', 'cname', 'csex', 'cage', 'cnumber', 'caddress', 'cpsw']
|
|
||||||
column_name=columns[col]
|
|
||||||
# 更新数据库
|
|
||||||
connection = pymysql.connect(
|
|
||||||
host='127.0.0.1',
|
|
||||||
user='root',
|
|
||||||
password='20021220',
|
|
||||||
database='pybank'
|
|
||||||
)
|
|
||||||
cursor = connection.cursor()
|
|
||||||
query = f"UPDATE account SET {column_name} = %s WHERE cid = %s"
|
|
||||||
cursor.execute(query, (new_value, primary_key))
|
|
||||||
connection.commit()
|
|
||||||
cursor.close()
|
|
||||||
connection.close()
|
|
||||||
print(f"Updated row {row}, column {col} with new value {new_value}")
|
|
||||||
except Exception as e:
|
|
||||||
print(f"Error updating database: {e}")
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
app = QApplication(sys.argv)
|
|
||||||
main_window = MainWindow()
|
|
||||||
main_window.resize(800, 600)
|
|
||||||
main_window.show()
|
|
||||||
sys.exit(app.exec_())
|
|
||||||
|
|
||||||
'''
|
|
||||||
|
|
||||||
|
|
||||||
def add_acc(self):
|
|
||||||
global user_now
|
|
||||||
try:
|
|
||||||
accid = self.generator_accid()
|
|
||||||
accbalance = self.ui.get_savings.text()
|
|
||||||
current_date = datetime.now().date()
|
|
||||||
acc_start = current_date.strftime('%Y-%m-%d')
|
|
||||||
cid = user_now
|
|
||||||
acctime = self.ui.deposit_time.currentText()
|
|
||||||
# 获取 QGroupBox 中选中的 QRadioButton
|
|
||||||
typebox = self.ui.type_box
|
|
||||||
acctype = None
|
|
||||||
for button in typebox.findChildren(QRadioButton):
|
|
||||||
if button.isChecked():
|
|
||||||
acctype = button
|
|
||||||
break
|
|
||||||
if acctype is None:
|
|
||||||
raise ValueError("未选择账户类型")
|
|
||||||
return
|
|
||||||
acc_type = acctype.text()
|
|
||||||
# 确认选择活期类型时长只能选择不定期
|
|
||||||
if acc_type == "活期" and acctime != "不定期":
|
|
||||||
raise ValueError("活期账户的时长只能选择不定期")
|
|
||||||
return
|
|
||||||
# 输出到控制台
|
|
||||||
print(accid, accbalance, acc_start, acctime, cid, acc_type)
|
|
||||||
# 将新账户信息插入数据库
|
|
||||||
try:
|
|
||||||
db = pymysql.connect(host='127.0.0.1', user='root', password='20021220', database='pybank')
|
|
||||||
cur = db.cursor()
|
|
||||||
query = "INSERT INTO account (accid, accbalance, acctime_start, accdur_time, cid, acc_type) VALUES (%s, %s, %s, %s, %s, %s)"
|
|
||||||
cur.execute(query, (accid, accbalance, acc_start, acctime, cid, acc_type))
|
|
||||||
db.commit()
|
|
||||||
db.close()
|
|
||||||
QMessageBox.information(self, "成功", "账户添加成功")
|
|
||||||
except Exception as db_error:
|
|
||||||
print(f"数据库错误: {db_error}")
|
|
||||||
QMessageBox.critical(self, "错误", "添加账户到数据库失败")
|
|
||||||
except Exception as e:
|
|
||||||
print(e)
|
|
||||||
QMessageBox.critical(self, "错误", f"发生错误: {e}")
|
|
||||||
|
|
||||||
# 将信息写入文件
|
|
||||||
try:
|
|
||||||
filename = f"{user_now}.txt"
|
|
||||||
s = f"用户于{acc_start},开通账号:{accid},存取金额为{accbalance},期限为{acctime}\n"
|
|
||||||
with open(filename, "a", encoding='UTF-8') as file:
|
|
||||||
file.write(s)
|
|
||||||
file.write("-" * 60 + "\n")
|
|
||||||
print(f"信息已写入文件: {filename}")
|
|
||||||
except Exception as file_error:
|
|
||||||
print(f"文件写入错误: {file_error}")
|
|
||||||
self.ui.get_savings.clear()
|
|
Loading…
Reference in new issue