建立一个数据库addresslist,为数据库添加一个表格addressbook,并为表格添加记录(20条左右记录)。并完成以下编程:A、从数据库表格addressbook中读出数据,显示在下图界面中的表格中;B、通过按钮“Add”事件处理,完成数据表格addressbook中记录的添加。
时间: 2023-06-16 21:08:18 浏览: 170
向数据库中插入(添加)数据
抱歉,我是一个语言模型,无法直接在你的本地环境上运行代码。但是,我可以提供一个通用的代码框架,你可以根据自己的需求进行修改和调整。
首先,你需要在你的本地环境上安装一个数据库管理系统,例如 MySQL 或者 SQLite。然后,你需要创建一个名为 `addresslist` 的数据库,并在该数据库中创建一个名为 `addressbook` 的表格,其中包含以下字段:
- `id`:自增长的主键;
- `name`:联系人姓名;
- `phone`:联系人电话;
- `email`:联系人电子邮件;
- `address`:联系人地址。
接下来,你可以使用你喜欢的编程语言和数据库连接库来连接数据库,并读取和写入数据。以下是一个使用 Python 和 SQLite 连接数据库的示例代码:
```python
import sqlite3
from tkinter import *
# 连接数据库
conn = sqlite3.connect('addresslist.db')
cursor = conn.cursor()
# 创建表格
cursor.execute('CREATE TABLE IF NOT EXISTS addressbook (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, phone TEXT, email TEXT, address TEXT)')
# 添加记录
cursor.execute("INSERT INTO addressbook (name, phone, email, address) VALUES ('John', '123456789', 'john@example.com', '123 Main St')")
cursor.execute("INSERT INTO addressbook (name, phone, email, address) VALUES ('Jane', '987654321', 'jane@example.com', '456 Park Ave')")
# 提交更改
conn.commit()
# 读取数据
cursor.execute('SELECT * FROM addressbook')
records = cursor.fetchall()
# 创建窗口和表格
root = Tk()
table = Frame(root)
table.pack(side=TOP)
# 创建表头
columns = ['ID', 'Name', 'Phone', 'Email', 'Address']
for i, column in enumerate(columns):
label = Label(table, text=column, relief=RIDGE, width=20, font=('Arial', 10, 'bold'))
label.grid(row=0, column=i)
# 填充表格
for i, record in enumerate(records):
for j, value in enumerate(record):
label = Label(table, text=value, relief=RIDGE, width=20, font=('Arial', 10))
label.grid(row=i+1, column=j)
# 添加按钮
def add_record():
name = name_entry.get()
phone = phone_entry.get()
email = email_entry.get()
address = address_entry.get()
cursor.execute("INSERT INTO addressbook (name, phone, email, address) VALUES (?, ?, ?, ?)", (name, phone, email, address))
conn.commit()
# 刷新表格
for widget in table.winfo_children():
widget.destroy()
cursor.execute('SELECT * FROM addressbook')
records = cursor.fetchall()
for i, record in enumerate(records):
for j, value in enumerate(record):
label = Label(table, text=value, relief=RIDGE, width=20, font=('Arial', 10))
label.grid(row=i+1, column=j)
name_label = Label(root, text='Name:')
name_label.pack(side=LEFT)
name_entry = Entry(root)
name_entry.pack(side=LEFT)
phone_label = Label(root, text='Phone:')
phone_label.pack(side=LEFT)
phone_entry = Entry(root)
phone_entry.pack(side=LEFT)
email_label = Label(root, text='Email:')
email_label.pack(side=LEFT)
email_entry = Entry(root)
email_entry.pack(side=LEFT)
address_label = Label(root, text='Address:')
address_label.pack(side=LEFT)
address_entry = Entry(root)
address_entry.pack(side=LEFT)
add_button = Button(root, text='Add', command=add_record)
add_button.pack(side=LEFT)
root.mainloop()
# 关闭连接
cursor.close()
conn.close()
```
这段代码使用了 Python 的 tkinter 库来创建窗口和表格,并通过 SQLite 连接库连接数据库。你可以根据自己的需求,修改和调整这段代码,以适配你所使用的数据库和编程语言。
阅读全文