功能实现
1、能够连接到自己的MySQL数据库,数据库包含至少三张表;
2、使用dataGridView控件显示表中的数据;
3、实现基本crud操作;
一、准备工作
开始之前,需要先添加MySql.Data引用
在using把MySql.Data,MySql.Data.MySqlClient,System.Data三个命名空间包括进来。
在添加引用前,需要安装库文件
方法:vs2022用户可以右键点击项目的解决方案,选择管理NuGet程序包
游览搜索mysql安装第一个,然后就可以添加引用了
二、界面设计
通过vs的工具箱控件对界面进行设计
三、代码设计
//链接MySql数据库
public partial class Form1 : Form
{
MySqlConnection conn; //连接数据库对象
MySqlDataAdapter adapter; //适配器变量
DataSet set; //临时数据集
public Form1()
{
InitializeComponent();
}
//导入MySql数据库
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数据库,在同学的提醒帮助下才顺利完成了数据库连接。设计界面到不是太大的问题,所以我们在学习过程中应该主动多问问同学,获得他人的一些帮助。