def load_data4(sql): # 连接数据库 conn = pymysql.connect(host='localhost', user='root', password='szx030226', database="电信诈骗案件信息管理系统") # 创建游标 cursor = conn.cursor() try: # 查询数据 execute_sql(sql) # 获取查询结果 results = cursor.fetchall() # 清空Treeview中的所有行 treeview4.delete(*treeview4.get_children()) # 将查询结果添加到Treeview中 for row in results: treeview4.insert('', tk.END, values=row) except Exception as e: print("查询失败:", e) finally: # 关闭游标和连接 cursor.close() conn.close() def query_1(): 案件编号 = entry_27.get() # 执行SQL语句 sql = "SELECT * FROM 案件信息表 WHERE 案件编号='{}'".format(案件编号) load_data4(sql)这段代码哪里有问题,为什么报错
时间: 2024-02-10 18:06:30 浏览: 151
这段代码中的问题可能出现在`execute_sql(sql)`这一行。在代码中并没有定义`execute_sql()`函数,因此会出现`NameError`错误。建议将该行代码改为`cursor.execute(sql)`。此外,还需注意`entry_27`是否定义以及是否在查询语句中使用了正确的变量名。
相关问题
# 连接MySQL数据库 def execute_sql(sql): global cursor conn = pymysql.connect(host="localhost", user="root", password="szx030226", database="电信诈骗案件信息管理系统") # 创建游标 cursor = conn.cursor() try: cursor.execute(sql) conn.commit() print('执行成功') except Exception as e: # 发生错误时回滚事务 conn.rollback() print('执行失败:', e) finally: cursor.close() conn.close() def load_data(): # 连接数据库 conn = pymysql.connect(host='localhost', user='root', password='szx030226', database="电信诈骗案件信息管理系统") # 创建游标 cursor = conn.cursor() try: # 查询数据 cursor.execute("SELECT * FROM 案件信息表") # 获取查询结果 results = cursor.fetchall() # 清空Treeview中的所有行 treeview1.delete(*treeview1.get_children()) # 将查询结果添加到Treeview中 for row in results: treeview1.insert('', tk.END, values=row) except Exception as e: print("查询失败:", e) finally: # 关闭游标和连接 cursor.close() conn.close() # 显示查询结果 load_data()这段代码有什么问题吗
这段代码在函数 `load_data()` 中调用了 `load_data()` 自身,这会导致无限递归调用,最终导致程序崩溃。需要将 `load_data()` 函数调用从函数内部移动到函数外部,或者将其放在一个事件循环中。另外,代码中没有对异常情况进行详细处理,比如数据库连接失败等等,建议加上相应的异常处理机制。
阅读全文