C#作业三:连接数据库并实现基础CRUD操作

一、目的要求
1、请设计一个项目连接到自己的MySQL数据库,数据库包含至少三张表;
2、使用dataGridView控件显示表中的数据;
3、实现基本crud操作;

二、实验过程
1.连接数据库

参考C#调用MySQL数据库(使用MySql.Data.dll连接)代码段增加using MySql.Data.MySqlClient;

2.实现CRUD操作

2.1界面设计

 控件功能描述:

DataGridView进行表中数据的显示。

textBox 1、2、3、4分别输入id、name、age、sex

Button:
连接:进行数据库连接。每次操作前都需要重新连接。

​查询:查看表中所有数据。

插入:在表中插入行,即为textbox显示的信息

​删除:根据id删id除记录

​修改:根据修改记录

退出:断开连接并退出

2.2核心代码

2.2.1建表

CREATE TABLE class(
    id VARCHAR(20),
    name VARCHAR(20) NOT NULL DEFAULT '',
    age VARCHAR(20) NOT NULL DEFAULT '',
    sex VARCHAR(10) NOT NULL DEFAULT '',
    PRIMARY KEY(id)
);
insert into class values('1' , '赵风' , '18' , '男');
insert into class values('2' , '钱雨' , '21' , '女');
insert into class values('3' , '孙雷' , '23' , '男');
insert into class values('4' , '赵电' , '56' , '男');
insert into class values('5' , '周花' , '24' , '女');
insert into class values('6' , '吴雪' , '19' , '女');
insert into class values('7' , '郑月' , '22' , '女');
insert into class values('8' , '王棋' , '20' , '男');
insert into class values('9' , '冯书' , '17' , '男');
insert into class values('10' , '陈画' , '21' , '女');

 

2.2.2连接

private void button1_Click(object sender, EventArgs e)
        {
            string M_str_sqlcon = "server=localhost;user id=root;password=123456;database=mysql2022";                                                                                              //创建数据库连接对象
            conn = new MySqlConnection(M_str_sqlcon);
            try
            {
                //打开数据库连接
                conn.Open();
                MessageBox.Show("数据库连接成功!");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

2.2.3查询

 MySqlConnection conn; //连接数据库对象
 MySqlDataAdapter mda; //适配器变量
 DataSet ds;  //临时数据集
    //三个全局定义
 private void button2_Click(object sender, EventArgs e)
        {
            string sql = "select * from user";
            mda = new MySqlDataAdapter(sql, conn);
            ds = new DataSet();
            mda.Fill(ds, "user");
            //显示数据
            dataGridView1.DataSource = ds.Tables["user"];
            conn.Close();
        }

2.2.4插入

private void button4_Click(object sender, EventArgs e)
        {
            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, "user");
                    MessageBox.Show("添加成功", "提示");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "error!");
            }
        }

2.2.5修改

 private void button3_Click(object sender, EventArgs e)
        {
            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, "user");
                    MessageBox.Show("修改成功", "提示");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "error!");
            }
        }

2.2.6删除

private void button5_Click(object sender, EventArgs e)
        {
            int index = dataGridView1.CurrentCell.RowIndex;
            int id =(int) dataGridView1.Rows[index].Cells[0].Value;
            string sql = "delete from user where id="+id+"";
            conn.Open();
            MySqlCommand cmd = conn.CreateCommand();  
            cmd.CommandText = sql;
            int i = cmd.ExecuteNonQuery();
            if (i < 0)
            {
                conn.Close();
                MessageBox.Show("error!");
                return;
            }
            conn.Close();     
        }

2.2.7退出

 private void button6_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

3.运行结果

 4.实验小结

由于mysql和vs2022版本不相容的问题导致一般方法不能使数据库连接成功,但是使用MySQL。data.dll复制到项目bin目录下的方法也可以使项目连接到数据库,后续下载其他版本 的MySQL后也可以用项目资源管理器连接成功。另外数据库的查询,修改,插入,删除的代码需要使用全局定义来执行,代码并不难,但也要注意仔细。

5.Git仓库源码

clone源码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值