def __init__(self,parent_window): parent_window.destroy() # 销毁子界面 self.window = tk.Tk() self.window.title('学生清单') self.window.geometry('1200x600+70+50') db = pymysql.connect(host="localhost", user="root", passwd="123456", db="room_db") cursor = db.cursor() # 使用cursor()方法获取操作游标 sql = "SELECT * FROM 学生住宿信息表" try: cursor.execute(sql) # 执行sql语句 results = cursor.fetchall() for row in results: self.id = '学号: ' + row[0] self.name = '姓名: ' + row[1] self.gender = '性别: ' + row[2] self.age = '年龄: ' + row[3] self.num = '电话:' + row[4] self.build = '公寓号:' + row[5] self.room = '宿舍号:' + row[6] db.commit() Label(self.window, text=self.id + "\t" + self.name + "\t" + self.gender + "\t" +self.age + "\t" +self.num+ "\t"+self.build + "\t" + self.room, font=('楷体', 18)).pack(pady=5) except: db.rollback() # 发生错误时回滚 messagebox.showinfo('警告!', '数据库连接失败!') db.close() # 关闭数据库连接 self.right_top_button4 = ttk.Button(text='返回', width=20, command=self.back).pack() self.window.protocol("WM_DELETE_WINDOW", self.back)为什么运行就是显示数据库连接失败
时间: 2024-02-14 21:28:36 浏览: 73
当代码运行时出现数据库连接失败的提示,有以下几个可能的原因:
1. 检数据库连接参数:请确保数据库的主机名(host)、用户名(user)、密码(passwd)和数据库名称(db)是否正确。请根据您的实际情况修改这些参数。
2. 检查数据库服务是否运行:请确保您的数据库服务已经启动,并且可以通过提供的主机名和端口号进行访问。
3. 检查数据库表名和字段名:请确保您的数据库中存在名为`学生住宿信息表`的表,并且该表中包含与代码中使用的字段名称一致的列。
4. 检查数据库连接模块是否正确导入:请确保您已经正确导入了`pymysql`模块,以便能够与数据库进行交互。
如果仍然遇到问题,请提供完整的错误信息,以便更好地帮助您解决问题。
相关问题
class AdminPage: def __init__(self, parent_window): parent_window.destroy() # 销毁主界面 self.window = tk.Tk() # 初始框的声明 self.window.title('管理员登陆页面') self.window.geometry('600x450') label = tk.Label(self.window, text='管理员登陆', bg='green', font=('Verdana', 20), width=40, height=2) label.pack() Label(self.window, text='管理员账号:', font=tkFont.Font(size=14)).pack(pady=25) self.admin_username = tk.Entry(self.window, width=40, font=tkFont.Font(size=14), bg='Ivory') self.admin_username.pack() Label(self.window, text='管理员密码:', font=tkFont.Font(size=14)).pack(pady=25) self.admin_pass = tk.Entry(self.window, width=40, font=tkFont.Font(size=14), bg='Ivory', show='*') self.admin_pass.pack() Button(self.window, text="登陆", width=10, font=tkFont.Font(size=12), command=self.login).pack(pady=40) Button(self.window, text="返回首页", width=10, font=tkFont.Font(size=12), command=self.back).pack() self.window.protocol("WM_DELETE_WINDOW", self.back) # 捕捉右上角关闭点击 self.window.mainloop() # 进入消息循环
这段代码是用 Python 的 tkinter 模块创建了一个简单的管理员登陆界面,其中包括管理员账号和密码的输入框以及登陆和返回首页的按钮。在程序运行时,会销毁主界面并打开管理员登陆页面。其中,self.login 和 self.back 是登陆和返回首页的函数,但是在这段代码中并没有给出它们的实现。
def __init__(self,parent_window): parent_window.destroy() # 销毁子界面 self.window = tk.Tk() self.window.title('学生清单') self.window.geometry('1200x600+70+50') db = pymysql.connect(host="localhost", user="root", passwd="123456", db="room_db") cursor = db.cursor() # 使用cursor()方法获取操作游标 sql = "SELECT * FROM 学生住宿信息表" try: cursor.execute(sql) # 执行sql语句 results = cursor.fetchall() for row in results: self.id = '学号: ' + row[0] self.name = '姓名: ' + row[1] self.gender = '性别: ' + row[2] self.age = '年龄: ' + row[3] self.num = '电话:' + row[4] self.build = '公寓号:' + row[5] self.room = '宿舍号:' + row[6] db.commit() Label(self.window, text=self.id + "\t" + self.name + "\t" + self.gender + "\t" +self.age + "\t" +self.num+ "\t"+self.build + "\t" + self.room, font=('楷体', 18)).pack(pady=5) except: db.rollback() # 发生错误时回滚 messagebox.showinfo('警告!', '数据库连接失败!') db.close() # 关闭数据库连接 self.right_top_button4 = ttk.Button(text='返回', width=20, command=self.back).pack() self.window.protocol("WM_DELETE_WINDOW", self.back) def back(self): cangkucha(self.window)为什么运行不了
根据您提供的代码,问题可能出在`cangkucha(self.window)`这一行上。根据代码来看,`cangkucha()`是一个函数,而不是一个类或对象的方法。所以,您需要将其改为函数的调用,而不是将其作为类的实例化。可以尝试使用以下代码进行调用:
```python
cangkucha(self.window)
```
另外,请确保在运行代码之前已经导入了必要的模块,如`tkinter`、`pymysql`、`messagebox`等。如果没有导入相关模块,也会导致代码运行失败。
阅读全文