数据库连接实验 目录
一、实验目标
- 请设计一个项目连接到自己的MySQL数据库,数据库包含至少三张表
- 使用dataGridView控件显示表中的数据;
- 实现基本crud操作;
二、实验步骤
- 下载安装MySQL驱动
选择第一个“Windows(x86,64-bit),MSI Installer”下载并安装


- 连接数据库
找到服务资源管理器,选择“添加连接”

选择数据源“MySQL Database”

添加连接,输入已经存在的数据库信息

如图所示,数据集已导入VS2019,,成功连接上数据库

- 设计数据库控制窗体
在工具箱中找到DataGridView控件,该控件用于显示数据库中的数据信息
将该控件添加到窗体中,调整至合适大小
点击控件右上角箭头,选择需要连接的数据源

接下来依次添加增删改查button以及连接数据库button按钮
其中删除与查询后面添加两个文本框
分别用于指定想要删除行的学号,指定想要查询的表名
最终效果图如图所示

- 代码实现
首先设置一些基础代码
MySqlDataAdapter mda; //适配器变量
DataSet ds; //临时数据集
MySqlConnection conn; //连接数据库对象
private void print_in_dataGridView()
{
MySqlCommand mycom = conn.CreateCommand();
mycom.CommandText = "SELECT * FROM student ; ";
MySqlDataAdapter adap = new MySqlDataAdapter(mycom);
DataSet ds = new DataSet();
adap.Fill(ds);
dataGridView1.DataSource = ds.Tables[0].DefaultView;
}
“数据库连接”代码块
private void button1_Click(object sender, EventArgs e)
{
string M_str_sqlcon = "server=localhost;user id=ZuiYi;password=rongxiang;database=demo_03"; //创建数据库连接对象
conn = new MySqlConnection(M_str_sqlcon);
try
{
conn.Open();
MessageBox.Show("数据库连接成功!");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
“增加”代码块
private void button2_Click(object sender, EventArgs e)
{
string table_name = textBox4.Text.Trim();
if (mda == null || ds == null)
{
MessageBox.Show("请先从数据库中导入数据");
return;
}
try
{
string msg = "确定要添加此条数据吗?";
if (1 == (int)MessageBox.Show(msg, "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation))
{
MySqlCommandBuilder builder = new MySqlCommandBuilder(mda);
mda.Update(ds, table_name);
MessageBox.Show("添加成功!", "提示");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString(), "错误信息");
}
}
“删除”代码块
private void button3_Click(object sender, EventArgs e)
{
try
{
conn.Open();
string select_id = textBox1.Text;
string delete_by_id = "delete from Student where s_id = " + "\"" + select_id + "\"";
MySqlCommand cmd = new MySqlCommand(delete_by_id, conn);
cmd.ExecuteNonQuery();
}
catch { MessageBox.Show("请正确选择行!", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); }
finally { conn.Dispose(); }
print_in_dataGridView();
}
“修改”代码块
private void button4_Click(object sender, EventArgs e)
{
string table_name = textBox4.Text.Trim();
if (mda == null || ds == null)
{
MessageBox.Show("请先从数据库中导入数据");
return;
}
try
{
string msg = "确定要修改吗?";
if (1 == (int)MessageBox.Show(msg, "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation))
{
MySqlCommandBuilder builder = new MySqlCommandBuilder(mda);
mda.Update(ds, table_name);
MessageBox.Show("修改成功!", "提示");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString(), "错误信息");
}
}
“查询”代码块
private void button5_Click(object sender, EventArgs e)
{
string table_name = textBox4.Text.Trim();
if (table_name == null && (table_name != "教师") && (table_name != "学生"))
{
MessageBox.Show("请填写正确的表格名!");
}
else
{
string sql = "select * from " + table_name;
mda = new MySqlDataAdapter(sql, conn);
ds = new DataSet();
mda.Fill(ds, table_name);
dataGridView1.DataSource = ds.Tables[table_name];
conn.Close();
}
}
三、运行测试
- 连接数据库

- 查询不同表格数据
查询student表格

查询score表格

查询teacher表格

- 增添数据行
在student表格中第9行增添一列数据

- 修改数据值
修改student表格中第9行的s_birthday值

- 删除数据行
根据学号“09”删除student表格中第9行

四、Gitee源代码
https://gitee.com/RX2510060278/windows-job/tree/master/3.MySQL%20Connection

1万+

被折叠的 条评论
为什么被折叠?



