1. 创建一个 WinForm 窗口,在窗口中添加以下控件:
- 一个 DataGridView 控件,用于显示数据库中的数据;
- 一些 Label 和 TextBox 控件,用于输入和显示要操作的数据;
- 一些 Button 控件,用于触发操作。
2. 在窗口的代码文件中添加以下代码:
using System;
using System.Data.OleDb;
using System.Windows.Forms;
namespace AccessDemo
{
public partial class MainForm : Form
{
private OleDbConnection connection;
private OleDbDataAdapter adapter;
private DataTable dataTable;
public MainForm()
{
InitializeComponent();
// 初始化数据库连接和数据适配器
connection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=database.accdb;");
adapter = new OleDbDataAdapter("SELECT * FROM users", connection);
dataTable = new DataTable();
adapter.Fill(dataTable);
// 绑定数据到 DataGridView 控件
dataGridView.DataSource = dataTable;
}
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
// 关闭数据库连接
connection.Close();
}
private void addButton_Click(object sender, EventArgs e)
{
// 插入一条新记录
string sql = "INSERT INTO users (name, age) VALUES (@name, @age)";
OleDbCommand command = new OleDbCommand(sql, connection);
command.Parameters.AddWithValue("@name", nameTextBox.Text);
command.Parameters.AddWithValue("@age", ageTextBox.Text);
connection.Open();
command.ExecuteNonQuery();
connection.Close();
// 刷新 DataGridView 控件的数据
dataTable.Clear();
adapter.Fill(dataTable);
}
private void deleteButton_Click(object sender, EventArgs e)
{
// 删除选中的记录
if (dataGridView.SelectedRows.Count > 0)
{
int id = (int)dataGridView.SelectedRows[0].Cells["id"].Value;
string sql = "DELETE FROM users WHERE id = @id";
OleDbCommand command = new OleDbCommand(sql, connection);
command.Parameters.AddWithValue("@id", id);
connection.Open();
command.ExecuteNonQuery();
connection.Close();
// 刷新 DataGridView 控件的数据
dataTable.Clear();
adapter.Fill(dataTable);
}
}
private void updateButton_Click(object sender, EventArgs e)
{
// 更新选中的记录
if (dataGridView.SelectedRows.Count > 0)
{
int id = (int)dataGridView.SelectedRows[0].Cells["id"].Value;
string sql = "UPDATE users SET name = @name, age = @age WHERE id = @id";
OleDbCommand command = new OleDbCommand(sql, connection);
command.Parameters.AddWithValue("@name", nameTextBox.Text);
command.Parameters.AddWithValue("@age", ageTextBox.Text);
command.Parameters.AddWithValue("@id", id);
connection.Open();
command.ExecuteNonQuery();
connection.Close();
// 刷新 DataGridView 控件的数据
dataTable.Clear();
adapter.Fill(dataTable);
}
}
private void searchButton_Click(object sender, EventArgs e)
{
// 根据姓名搜索记录
string name = nameTextBox.Text;
string sql = "SELECT * FROM users WHERE name LIKE @name";
OleDbCommand command = new OleDbCommand(sql, connection);
command.Parameters.AddWithValue("@name", "%" + name + "%");
DataTable searchResult = new DataTable();
adapter.SelectCommand = command;
adapter.Fill(searchResult);
dataGridView.DataSource = searchResult;
}
}
}
3. 在窗口的设计器中,将各个控件的事件与上述方法绑定。
4. 将数据库文件(.accdb)放到程序的运行目录下,并修改连接字符串中的文件名为相应的文件名。
5. 运行程序,即可进行基本的增删改查操作。