一、实验题目
数据库连接
1、请设计一个项目连接到自己的MySQL数据库,数据库包含至少三张表;
2、使用dataGridView控件显示表中的数据;
3、实现基本crud操作;
二、代码实现
1.部分代码
连接数据库
public partial class Form1 : Form
{
MySqlConnection conn; //连接数据库对象
MySqlDataAdapter adapter; //适配器变量
DataSet set; //临时数据集
public Form1()
{
InitializeComponent();
}
添加数据
private void button1_Click(object sender, EventArgs e)
{
string sqlStr = "select * from stuinfo";
//创建适配器对象,其是连接数据集以及数据库之间的一个接口
adapter = new MySqlDataAdapter(sqlStr, conn);
//数据集、本地微型数据库可以存储多张表。
set = new DataSet();
//从数据库的stuinfo表中取出数据
adapter.Fill(set, "stuinfo");
//将取出的数据做为dataGridView1的数据源
dataGridView1.DataSource = set;
dataGridView1.DataMember = "stuinfo";
}
更新数据
private void button2_Click(object sender, EventArgs e)
{
if (adapter == null || set == null) //先导入数据才能更新数据。
{
MessageBox.Show("请先导入数据");
return;
}
try
{
string msg = "确实要更新吗?";
if (1 == (int)MessageBox.Show(msg, "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation))
{
MySqlCommandBuilder builder = new MySqlCommandBuilder(adapter); //命令生成器。
adapter.Update(set, "stuinfo");
MessageBox.Show("更新成功", "提示");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString(), "错误信息");
}
}
查找数据
private void button3_Click(object sender, EventArgs e)
{
string sql = textBox1.Text;
adapter = new MySqlDataAdapter(sql, conn);
//数据集、本地微型数据库可以存储多张表。
set = new DataSet();
adapter.Fill(set, "stuinfo");
dataGridView1.DataSource = set;
dataGridView1.DataMember = "stuinfo";
}
删除数据
private void button5_Click(object sender, EventArgs e)
{
int i = dataGridView1.SelectedCells[0].RowIndex;
dataGridView1.Rows.RemoveAt(i);
}
2.完整代码
public partial class Form1 : Form
{
MySqlConnection conn; //连接数据库对象
MySqlDataAdapter adapter; //适配器变量
DataSet set; //临时数据集
public Form1()
{
InitializeComponent();
}
//导入数据
private void button1_Click(object sender, EventArgs e)
{
string sqlStr = "select * from stuinfo";
//创建适配器对象,其是连接数据集以及数据库之间的一个接口
adapter = new MySqlDataAdapter(sqlStr, conn);
//数据集、本地微型数据库可以存储多张表。
set = new DataSet();
//从数据库的stuinfo表中取出数据
adapter.Fill(set, "stuinfo");
//将取出的数据做为dataGridView1的数据源
dataGridView1.DataSource = set;
dataGridView1.DataMember = "stuinfo";
}
//更新数据
private void button2_Click(object sender, EventArgs e)
{
if (adapter == null || set == null) //先导入数据才能更新数据。
{
MessageBox.Show("请先导入数据");
return;
}
try
{
string msg = "确实要更新吗?";
if (1 == (int)MessageBox.Show(msg, "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation))
{
MySqlCommandBuilder builder = new MySqlCommandBuilder(adapter); //命令生成器。
//适配器会自动更新用户在表上的操作到数据库中
adapter.Update(set, "stuinfo");
MessageBox.Show("更新成功", "提示");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString(), "错误信息");
}
}
//查询
private void button3_Click(object sender, EventArgs e)
{
string sql = textBox1.Text;
adapter = new MySqlDataAdapter(sql, conn);
//数据集、本地微型数据库可以存储多张表。
set = new DataSet();
//从数据库的stuinfo表中取出数据
adapter.Fill(set, "stuinfo");
//将取出的数据做为dataGridView1的数据源
dataGridView1.DataSource = set;
dataGridView1.DataMember = "stuinfo";
}
//连接数据库
private void button4_Click(object sender, EventArgs e)
{
//connStr连接数据库的登录信息
string connStr = "server = localhost; user = root; database = students; port = 3306; password = 5250";
//创建连接数据库的对象
conn = new MySqlConnection(connStr);
try
{
conn.Open();
MessageBox.Show("连接成功");
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
//删除
private void button5_Click(object sender, EventArgs e)
{
int i = dataGridView1.SelectedCells[0].RowIndex;
dataGridView1.Rows.RemoveAt(i);
}
}
三.截图结果
四.心得体会
通过这次实验我学会了设计一个项目连接到自己的MySQL数据库,此外学会了使用dataGridView控件显示表中的数据以及实现基本crud操作,最重要的是对C#的理解更近了一步。