从0开始C#操作MySQL数据库

前文

本文旨在展现如何通过C#来操作MySQL数据库,本文通过一个简单范例展示了如何实现这一功能。

准备

  • MySQL WorkBench8.0 CE
  • VS2013

正文

1.两种连接方式

根据操作数据库时是否需要一直连接的特点,将行为分为两种:

第一种是对数据库始终保持连接状态;

第二种是先将数据暂存于内存中,操作是对内存的数据,操作完成后,更新数据库,如图1所示。

2.长连接

1.新建需要测试的Table:test

1.首先我们建立好如图的winform窗体

这里我们希望实现根据名字查询其对应的性别这一功能,首先要知道名字下拉框中的包含哪些名字,这里我们要实现的时对数据库的读取功能。

2.获取名字

我们通过导入名字这一按钮的点击事件实现这一功能。

private void btnGetName_Click(object sender, EventArgs e)
        {
            //建立链接
            string connStr = "datasource=127.0.0.1;uid=root;pwd=root;database=test;port=3306;SslMode = none";
            conn = new MySqlConnection(connStr); //生成连接对象。
            try
            {
                conn.Open();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "错误信息");
            }
            //生成命令
            string sqlstr = "select name from test "; //首先我们需要获得名字这一列
            MySqlCommand cmd = new MySqlCommand(sqlstr, conn);
            //查询结果
            rdr = cmd.ExecuteReader();
            try
            {
                while (rdr.Read())
                {
                    //将查询结果添加给cbxName
                    cbxName.Items.Add(rdr["name"]);
                }
                rdr.Close();//这里声明一个DataReader,如果声明两个会抛异常,如果想重新声明,那必须
                //关掉之前哪个DataReader
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "错误信息");
            }
        }

3.查询功能通过查询点击按钮事件实现

private void btnSearch_Click(object sender, EventArgs e)
        {
            //获取cbxName选中的文本
           string name = cbxName.SelectedItem.ToString();
           //生成命令
           string search = "select gender from test where name = " + "'" + name + "'";
           MySqlCommand searchcmd = new MySqlCommand(search, conn);
            //获取信息
           rdr = searchcmd.ExecuteReader();
           try
           {
               while (rdr.Read())
               {
                   //将查询结果添加给cbxName
                   textBox1.Text = rdr["gender"].ToString();
               }
               rdr.Close();
           }
           catch (Exception ex)
           {
               MessageBox.Show(ex.ToString(), "错误信息");
           }
        }

4.测试

 

3.处理解耦数据

该部分可以参考以下网址中关于处理解耦数据的范例。

https://blog.csdn.net/qq_41822235/article/details/90414319?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161473233216780262541542%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=161473233216780262541542&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~baidu_landing_v2~default-1-90414319.first_rank_v2_pc_rank_v29&utm_term=C%23%E5%AE%9E%E7%8E%B0Mysql%E6%95%B0%E6%8D%AE%E5%BA%93%E6%93%8D%E4%BD%9C

Tips(有问题看这)

  • 未能找到类型或命名空间名称“MySql”(是否缺少 using 指令或程序集引用?

出现该问题是因为,MySql版本和框架版本不一致导致的,将框架与MySql程序集版本统一即可,例如以下警告中:

警告    6    未能解析主引用“MySql.Data, Version=8.0.23.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL”,因为它是针对“.NETFramework,Version=v4.5.2”框架生成的。该框架版本高于当前目标框架“.NETFramework,Version=v4.5”。    MySQL测试

那么我们将项目的.net框架设置为v4.5.2即可


如果你觉得本文还不错的话,请点赞,评论,转发,收藏,你的鼓励是我原创分享的最大动力!!!

 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值