实验目标:
1、请设计一个项目连接到自己的MySQL数据库,数据库包含至少三张表;
2、使用dataGridView控件显示表中的数据;
3、实现基本crud操作。
实验过程:
插件更新
首先,在vs 2022中下载/更新相关插件。
代码实现
安装完成后,即可开始C#连接MySQL数据库的操作。
首先先设计好界面,增添所需的功能按钮及控件。
首先,在“表名”中输入数据库中的所需使用的表名。
再单击“打开连接”,使程序能够打开数据库,从而执行基本crud操作。
查询操作
private void button2_Click(object sender, EventArgs e)
{
string sql = "select * from " + textBox5.Text;
MySqlCommand cmd = new MySqlCommand(sql, connection);
MySqlDataReader reader = cmd.ExecuteReader();
//设置dataGridView的列
dataGridView1.ColumnCount = 3;
dataGridView1.ColumnHeadersVisible = true;
dataGridView1.Columns[0].Name = "Cno";
dataGridView1.Columns[1].Name = "Cname";
dataGridView1.Columns[2].Name = "Avg";
//根据查询结果像DataGridView中添加数据行
while (reader.Read())
{
int index = this.dataGridView1.Rows.Add();
this.dataGridView1.Rows[index].Cells[0].Value = reader.GetString("Cno");
this.dataGridView1.Rows[index].Cells[1].Value = reader.GetString("Cname");
this.dataGridView1.Rows[index].Cells[2].Value = reader.GetString("Avg");
}
//保证每次操作后,关闭连接。
connection.Close();
}
增加操作
完成增加操作之后需要再次连接数据库,查询相应表,才能在dataGridView中继续显示操作更新之后的新表。
同时,在左下角的textbox中也会显示相应操作转换后的SQL语句。
private void button3_Click(object sender, EventArgs e)
{
string sql = "insert into " + textBox5.Text + " values (" + "'" + textBox1.Text + "','" + textBox2.Text + "'" + ",'" + textBox3.Text + "')";
textBox4.Text = sql;
MySqlCommand cmd = new MySqlCommand(sql, connection);
cmd.ExecuteNonQuery();
connection.Close();
}
删除操作
private void button4_Click(object sender, EventArgs e)
{
//字段为字符窜时要加上单引号 ''
string sql = "delete from " + textBox5.Text + " where Cno=" + "'" + textBox1.Text + "'";
textBox4.Text = sql;
MySqlCommand cmd = new MySqlCommand(sql, connection);
cmd.ExecuteNonQuery();
connection.Close();
}
修改操作
修改操作只会根据选择的课程号来修改输入平均分的数据。
private void button5_Click(object sender, EventArgs e)
{
string sql = "update " + textBox5.Text + " set Avg=" + "'" + textBox3.Text + "'" + " where Cno=" + "'"+textBox1.Text+"'";
textBox4.Text = sql;
MySqlCommand cmd = new MySqlCommand(sql, connection);
cmd.ExecuteNonQuery();
connection.Close();
}
实验总结:
本次实验一开始按照老师所发的教程来安装MySQL连接的相关插件,在实操过程中,发现部分插件不支持vs 2022的最新版本,仅支持2017/2019的版本,在网上也并未找到有关的解决办法。后来,在班上同学的帮助下,才知道如何使用2022连接MySQL,从而开始正式的实验操作。
在实验中,一开始没有合理使用数据库的关闭功能,导致运行出现了问题,对表进行二次操作之后会导致程序无法正常退出。查询之后才知道是因为没有及时关闭数据库连接导致的。所以为了避免该情况出现,我在每次操作后都添加了该语句,能够保证每次自动关闭连接。
实验中也有一些小问题,比如输入的SQL语句没注意到变量的类型是字符型,而忘记了添加引号。