基于C#连接Mysql,并进行增删改查操作

记录一下今天的学习内容。

前置条件(括号里是我用的):Visual Studio (2022)、Mysql (8.0.33 Community Server)、Navicat Premium (16)

 

1. 开发准备

首先,打开Visual Studio,选择控制台应用并创建,框架应该影响不大,我用的.net 6.0

  然后新建一个名为MysqlDbContext.cs的项。

  打开 工具 -> NuGet包管理器 -> 管理解决方案的NuGet程序包,搜索Mysql.Data并根据自身情况选择版本安装,至此,开发基础准备完成。

  

  

  2. 创建测试用数据库

  打开Navicat,新建连接到mysql

     

 

  创建test数据库,在数据库中创建student表,添加a(int), b(int)两个字段。       

   

 

  完成后打开表,并插入两行数据,至此,数据库准备完成

  

  3. C#的Mysql数据库连接与交互

  我们在MysqlDbContext.cs中添加数据库相关的操作方法

using MySql.Data.MySqlClient;//添加引用

namespace MysqlTest
{
    internal class MysqlDbContext
    {
        MySqlConnection conn = default!;//保存连接的数据库

        /// <summary>
        /// 获取一个已Open()的数据库对象
        /// </summary>
        /// <returns></returns>
        public MySqlConnection getConn()
        {
            string connstr = "server=localhost;port=3306;user=root;password=123456;database=test;Charset=utf8;";
            conn = new MySqlConnection(connstr);
            conn.Open();
            return conn;
        }
    }
}

  然后回到Program.cs,创建对象,调用getConn()方法,调试程序,不报错应该就没问题。

     static void Main(string[] args)
        {
            var a = new MysqlDbContext();
            a.getConn();
        }

  接着在MysqlDbContext.cs中添加如下代码,实现CURD中的Create()

        /// <summary>
        /// 连接并生成命令对象
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public MySqlCommand command(string sql)
        {
            MySqlCommand cmd = new MySqlCommand(sql, getConn());
            return cmd;
        }
        
        /// <summary>
        /// 增 操作
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public int Create(string sql = "insert into student values('123','123')")
        {
            return command(sql).ExecuteNonQuery();
        }     
    
        /// <summary>
        /// 关闭连接
        /// </summary>
        public void DbClose()
        {
            conn.Close();
        }

  回到主函数中调用并调试,此时使用Navicat观察可以看到数据表中新增了一行(123,123)记录,表示成功。

            a.Create();
            a.DbClose();

  接着给MysqlDbContext.cs添加如下代码,测试方式与上文同理,案例SQL语句已经放在了方法参数的初值上

        /// <summary>
        /// 删 操作
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public int Delete(string sql = "Delete from student where a = 4")
        {
            return command(sql).ExecuteNonQuery();
        }

        /// <summary>
        /// 改 操作
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public int Update(string sql = "UPDATE student set a = 4 WHERE b = 5;")
        {
            return command(sql).ExecuteNonQuery();
        }

        /// <summary>
        /// 查 操作
        /// </summary>
        /// <param name="sql"></param>
        public void Read(string sql = "select * from student")
        {
            MySqlDataReader mdr = command(sql).ExecuteReader();
            while (mdr.Read())
            {
                Console.WriteLine(mdr[0].ToString());
                Console.WriteLine(mdr[1].ToString());
            }
        }

  通过以上内容,可以使用C#对Mysql数据库进行增删改查操作。

 

  参考资料:

  • https://www.cnblogs.com/RioTian/p/15581594.html
  • https://blog.csdn.net/weixin_43453221/article/details/109626769
posted @ 2023-07-12 11:45  云茗  阅读(3230)  评论(0)    收藏  举报