数据库连接

一、实验目标

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

二、实验步骤

  1. 下载安装MySQL驱动

选择第一个“Windows(x86,64-bit),MSI Installer”下载并安装
在这里插入图片描述

在这里插入图片描述

  1. 连接数据库

找到服务资源管理器,选择“添加连接”
在这里插入图片描述

选择数据源“MySQL Database”
在这里插入图片描述

添加连接,输入已经存在的数据库信息
在这里插入图片描述

如图所示,数据集已导入VS2019,,成功连接上数据库
在这里插入图片描述

  1. 设计数据库控制窗体

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

在这里插入图片描述

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

  1. 代码实现

首先设置一些基础代码

        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();

            }
        }

三、运行测试

  1. 连接数据库

在这里插入图片描述

  1. 查询不同表格数据

查询student表格
在这里插入图片描述

查询score表格
在这里插入图片描述

查询teacher表格
在这里插入图片描述

  1. 增添数据行

在student表格中第9行增添一列数据
在这里插入图片描述

  1. 修改数据值

修改student表格中第9行的s_birthday值
在这里插入图片描述

  1. 删除数据行

根据学号“09”删除student表格中第9行
在这里插入图片描述

四、Gitee源代码

https://gitee.com/RX2510060278/windows-job/tree/master/3.MySQL%20Connection

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值