今天星期六,在公司加班研究了一天,如何实现用C#连接数据库,现在把今天研究到的成过记录下来!


安装MySQL提供连接C#的插件

Mysql.Data.dll

下载网址https://www.mysql.com/

下载步骤如下图:

一、

vs2017 连接 mysql_mysql


二、

vs2017 连接 mysql_MySQL_02


三、

vs2017 连接 mysql_C#_03


下载好安装好就可以进行下一步操作了!MySQL for Visual Studio 安装教程:

vs2017 连接 mysql_MySQL_04


vs2017 连接 mysql_mysql_05

注意事项:
再上图中,本来Visual Studio 2017不应该打叉的,不知道为什么小编的打叉了,选中自己对应的版本进行安装,就可以在Visual Studio 中进行打开数据了。小编的不行,所以就只能利用其他工具打开数据库进行操作了!

如下图:

vs2017 连接 mysql_mysql_06

vs2017 连接 mysql_MySQL_07


vs2017 连接 mysql_mysql_08


Visual Studio 添加dll文件

请按照图片步骤进行Mysql.Data.dll的引入添加!

vs2017 连接 mysql_数据库_09


vs2017 连接 mysql_C#_10

vs2017 连接 mysql_C#_11

在数据库的安装路径中,找到Mysql.Data.dll进行添加!

这样就完成了,可以进行代码编辑连接MySQL了!


实现代码连接数据库

需要包含的命名空间:
using System.Data; // 表的命名空间
using MySql.Data.MySqlClient; // 和MySQL相关的命名空间

下面请看代码:(代码中都有详细注释,这里就不详细解释啦!)

注意代码中的数据库名,登录账号,密码,表名和表的字段噢!

运行代码必须先启动数据库噢!

小编代码中用的数据库名表名和表的字段在代码下面有截图!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;  // 表的命名空间
using MySql.Data.MySqlClient;   // 和MySQL相关的命名空间

namespace 连接数据库 {

    class Program {
        static void Main(string[] args) {

            #region 连接数据库

            // 声明一个连接数据库的对象
            MySqlConnectionStringBuilder mysqlCSB = new MySqlConnectionStringBuilder();
            mysqlCSB.Database = "school";   // 设置连接的数据库名
            mysqlCSB.Server = "127.0.0.1";  // 设置连接数据库的IP地址
            mysqlCSB.Port = 3306;           // MySql端口号
            mysqlCSB.UserID = "root";       // 设置登录数据库的账号
            mysqlCSB.Password = "yang";     // 设置登录数据库的密码
            //string mysqlCSB = "Database=school;Data Source=127.0.0.1;port=3306;User Id=root;Password=yang;";

            // 创建连接
            MySqlConnection mySqlConnection = new MySqlConnection(mysqlCSB.ToString());

            // 打开连接(如果处于关闭状态才进行打开)
            if (mySqlConnection.State == ConnectionState.Closed) {
                mySqlConnection.Open();
            }

            // 对应数据库里面的表字段
            string id = "0";    
            string name = "0";
            // 保存数据库执行后受影响的行数
            int result = 0;

            #endregion





            /****************************************************************************************/
            /*********************************-----华丽的分割线-----*********************************/
            /***************************************数据库插入***************************************/

            #region MySQL插入(增)

            try {

                // 打开连接(如果处于关闭状态才进行打开)
                if (mySqlConnection.State == ConnectionState.Closed) {
                    mySqlConnection.Open();
                }

                Console.WriteLine("请输入需要插入的id:");
                id = Console.ReadLine();
                Console.WriteLine("请输入需要插入的name:");
                name = Console.ReadLine();
                

                // 创建要插入的MySQL语句
                String mysqlInsert = "insert into class1 values(" + id + ", '" + name + "')";

                // 创建用于实现MySQL语句的对象
                MySqlCommand mySqlCommand = new MySqlCommand(mysqlInsert, mySqlConnection);
                // 执行MySQL语句进行插入
                result = mySqlCommand.ExecuteNonQuery();

                Console.WriteLine("数据库中受影响的行数({0})\n", result);

            }
            catch (Exception) {
                
            }
            finally {
                // 关闭连接
                mySqlConnection.Close();
            }

            #endregion





            /****************************************************************************************/
            /*********************************-----华丽的分割线-----*********************************/
            /***************************************数据库删除***************************************/

            #region MySQL删除(删)

            try {

                // 打开连接(如果处于关闭状态才进行打开)
                if (mySqlConnection.State == ConnectionState.Closed) {
                    mySqlConnection.Open();
                }


                Console.WriteLine("请输入需要删除的id:");
                id = Console.ReadLine();


                // 创建要查询的MySQL语句
                String sqlDelete = "delete from class1 where id = " + id;

                // 创建用于实现MySQL语句的对象
                MySqlCommand mySqlCommand4 = new MySqlCommand(sqlDelete, mySqlConnection);
                // 执行MySQL语句进行删除
                result = mySqlCommand4.ExecuteNonQuery();

                Console.WriteLine("数据库中受影响的行数({0}\n)", result);

            }
            catch (Exception) {

            }
            finally {
                // 关闭连接
                mySqlConnection.Close();
            }

            #endregion





            /****************************************************************************************/
            /*********************************-----华丽的分割线-----*********************************/
            /***************************************数据库修改***************************************/

            #region MySQL修改(改)

            try {

                // 打开连接(如果处于关闭状态才进行打开)
                if (mySqlConnection.State == ConnectionState.Closed) {
                    mySqlConnection.Open();
                }

                Console.WriteLine("请输入需要修改的id:");
                id = Console.ReadLine();
                Console.WriteLine("请输入需要修改的name:");
                name = Console.ReadLine();

                // 创建要修改的MySQL语句
                String sqlUpdate = "update class1 set name = '" + name + "' where id = " + id;

                // 创建用于实现MySQL语句的对象
                MySqlCommand mySqlCommand3 = new MySqlCommand(sqlUpdate, mySqlConnection);
                // 执行MySQL语句进行修改
                result = mySqlCommand3.ExecuteNonQuery();

                Console.WriteLine("数据库中受影响的行数({0}\n)", result);

            }
            catch (Exception) {

            }
            finally {
                // 关闭连接
                mySqlConnection.Close();
            }

            #endregion





            /****************************************************************************************/
            /*********************************-----华丽的分割线-----*********************************/
            /***************************************数据库查询***************************************/

            #region MySQL查询(查)

            try {

                // 打开连接(如果处于关闭状态才进行打开)
                if (mySqlConnection.State == ConnectionState.Closed) {
                    mySqlConnection.Open();
                }

                Console.WriteLine("请输入需要查询的id:");
                id = Console.ReadLine();


                // 创建要查询的MySQL语句
                String sqlSelect = "select * from class1 where id = " + id + ";";

                // 创建用于实现MySQL语句的对象
                MySqlCommand mySqlCommand2 = new MySqlCommand(sqlSelect, mySqlConnection);  // 参数一:SQL语句字符串 参数二:已经打开的数据库连接对象
                // 执行MySQL语句,接收查询到的MySQL结果
                MySqlDataReader mdr = mySqlCommand2.ExecuteReader();


                // 读取数据
                while (mdr.Read()) {
                    Console.WriteLine("id = " + mdr.GetString("id") + "  name = " + mdr.GetString("name"));
                }

            }
            catch (Exception) {

            }
            finally {
                // 关闭连接
                mySqlConnection.Close();
            }


            #endregion





            Console.WriteLine();
            Console.ReadKey();
        }
    }
}

代码中多次把连接断开后再打开,是为了不打开那么多次而浪费资源,这是一个小技巧!

vs2017 连接 mysql_数据库_12


vs2017 连接 mysql_数据库_13


vs2017 连接 mysql_mysql_14


C# 连接SQL Server数据库

另外附赠C#连接SQL Server数据库的方式。
拿走不谢!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 连接数据库 {

    class Program {
        static void Main(string[] args) {

            // 附送SQL Server 的数据库连接方式,拿走不谢!
            // 需要包含头文件:using System.Data;  // 表的命名空间
            // using System.Data.SqlClient;    // 和SQL相关的命名空间
            #region SQL Server 连接数据库的方式
            string id = "0";

            Console.WriteLine("请输入需要查询的id:");
            id = Console.ReadLine();




            // 声明一个连接数据库的对象
            SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder();

            // 设置连接数据库的IP地址
            scsb.DataSource = "127.0.0.1";

            // 设置登录数据库的账号
            scsb.UserID = "root";

            // 设置登录数据库的密码
            scsb.Password = "yang";

            // 设置连接的数据库名
            scsb.InitialCatalog = "school";



            // 创建连接
            SqlConnection conn = new SqlConnection(scsb.ToString());

            // 打开连接
            conn.Open();

            // 创建要执行的SQL语句
            String sqlSelect = "select * from class1 where id = " + id + ";";

            // 创建用于实现SQL语句的对象
            SqlCommand comm = new SqlCommand(sqlSelect, conn);  // 参数一:SQL语句字符串 参数二:已经打开的数据库连接对象
            // 执行comm对象,接收查询到的SQL结果
            SqlDataReader sdr = comm.ExecuteReader();


            // 读取数据
            while (sdr.Read()) {
                Console.WriteLine(sdr["Name"]);
            }

            #endregion


            Console.WriteLine();
            Console.ReadKey();
        }
    }
}

总结:连接MySQL数据库的基本步骤就是这样了,希望对大家有帮助吧!