Unity网络编程二 : 服务器端连接数据库(C#连接MySQL)

4 篇文章 25 订阅
3 篇文章 0 订阅

服务端需要连接数据库才能与客户端进行数据的交互,本案例使用Mysql作为连接数据库

开发环境:

  • VS 2019
  • MySQL
  • .Net
    一、连接MySQL环境配置

为了连接MySQL,需要配置文件MySql.Data.dll,如果使用的是Vs2019,可以直接下载使用,不需要进行自己下载配置, 具体配置方式为:

首先直接使用其方法MySqlConnection,在出现错误提示后Alt+Enter显示可能修补的程序,然后选择安装MySQL.Data,VS2019会自动下载安装
在这里插入图片描述

当然也可以自行手动添加,在MySQL官网下载后,手动安装即可

二、定义连接连接数据库需要变量

首先创建一个类ConnDB作为封装数据库连接打开关闭使用,并定义需要使用的数据库连接变量:

  • 数据库地址:本机为localhost
  • 数据库端口号:一般默认为3306
  • 登录名:管理员用户为root
  • 登录密码:与用户对应的密码
  • 数据库名:你需要操作的数据库名称

具体的定义为:

		//定义连接地址、端口号、登录用户名、密码、数据库名
        private string server;
        private string port;
        private string user;
        private string password;
        private string datename;

三、构造函数获取对应参数

通过构造函数在类的实例化时获取需要输入的参数代码块为:

 		public ConnDB(string _server,string _port,string _user,string _password,string _datename)
        {
            this.server = _server;
            this.port = _port;
            this.user = _user;
            this.password = _password;
            this.datename = _datename;
        } 

四、连接并打开数据库

首先需要连接数据库,使用MySqlConnection()可以实现对于数据库的连接,其参数为连接之前定义的变量的字符串

使用string.Format()方法可以这些变量组成字符串:

		private MySqlConnection conn;
 		public MySqlConnection openDate()
        {
            try
            {
                string connStr = string.Format("server={0};port={1};user={2};password={3}; database={4};", server, port, user, password, datename);
                //连接数据库
                conn = new MySqlConnection(connStr);
                //打开
                conn.Open();
            }
            catch (Exception e)
            {
                Console.WriteLine("连接数据库错误,原因为:" + e.ToString());
            }
            return conn;            
        }

五,关闭数据库连接

定义一个函数来实现数据库的关闭功能:

public void closeDB(MySqlConnection conn)
        {
            //关闭数据库
            conn.Close();
        }

六、通过查询案例调用脚本

1,首先实例化该类,并通过类中的openDate()创建连接

2,然后使用MySqlCommand()方法来执行sql语句,完成查询

3,通过MySqlDataReader()对查询的结果进行数据处理

4,通过一定方式输出数据

	 	static void Main(string[] args)
        {
            //测试数据库
            ConnDB connDB = new ConnDB("localhost", "3306","root","***","**");
            MySqlConnection conn= connDB.openDate();
            string sqlStr = "select * from users";
            //执行sql语句,并返回结果
            MySqlCommand mycmd = new MySqlCommand(sqlStr,conn);
            //从返回结果中提取数据
            MySqlDataReader re = mycmd.ExecuteReader();
            if (re.HasRows)
            {
                while (re.Read())
                {
                    //读取第二列数据
                    Console.WriteLine(re[1]);
                }
            }
            connDB.closeDB();
        }

总结:

贴上数据库连接类完整源码:

using System;
using System.Collections.Generic;
using System.Text;
using MySql.Data.MySqlClient;

namespace ServerDemo
{
    class ConnDB
    {
        //定义连接地址、端口号、登录用户名、密码、数据库名
        private string server;
        private string port;
        private string user;
        private string password;
        private string datename;

        private MySqlConnection conn;
        //构造函数接收参数
        public ConnDB(string _server,string _port,string _user,string _password,string _datename)
        {
            this.server = _server;
            this.port = _port;
            this.user = _user;
            this.password = _password;
            this.datename = _datename;
        } 
       // 
       /// <summary>
       ///  连接打开数据库
       /// </summary>
        public MySqlConnection openDate()
        {
            try
            {
                string connStr = string.Format("server={0};port={1};user={2};password={3}; database={4};", server, port, user, password, datename);
                //连接数据库
                conn = new MySqlConnection(connStr);
                //打开
                conn.Open();
            }
            catch (Exception e)
            {
                Console.WriteLine("连接数据库错误,原因为:" + e.ToString());
            }
            return conn;            
        }
        public void closeDB()
        {
            //关闭数据库
            conn.Close();
        }
    }
}

测试代码:

using System;
using MySql.Data.MySqlClient;

namespace ServerDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            //测试数据库
            ConnDB connDB = new ConnDB("localhost", "3306","root","****","***");
            MySqlConnection conn= connDB.openDate();
            string sqlStr = "select * from users";
            //执行sql语句,并返回结果
            MySqlCommand mycmd = new MySqlCommand(sqlStr,conn);
            //从返回结果中提取数据
            MySqlDataReader re = mycmd.ExecuteReader();
            if (re.HasRows)
            {
                while (re.Read())
                {
                    //读取三列数据
                    Console.WriteLine(re[1]);
                }
            }
            

            connDB.closeDB();
        }
    }
}

  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 19
    评论
Unity连接MySQL数据库可以通过使用MySQL Connector/NET来实现。下面是一些基本步骤: 1. 下载并安装MySQL Connector/NET:首先,你需要从MySQL官方网站下载并安装MySQL Connector/NET。这是一个用于在.NET应用程序中连接和操作MySQL数据库的驱动程序。 2. 导入MySQL Connector/NET到Unity项目:在Unity中,你需要将MySQL Connector/NET的DLL文件导入到项目中。可以将DLL文件直接拖放到Unity的Assets文件夹中。 3. 编写连接代码:在Unity中,你可以使用C#编写代码来连接MySQL数据库。首先,你需要在代码中引入MySQL Connector/NET的命名空间。然后,使用连接字符串来指定数据库连接信息,包括服务器地址、用户名、密码等。最后,使用MySQL Connector/NET提供的类和方法来执行数据库操作,如查询、插入、更新等。 以下是一个简单的示例代码,展示了如何连接MySQL数据库并执行查询操作: ```csharp using System; using MySql.Data.MySqlClient; public class MySQLConnector : MonoBehaviour { private MySqlConnection connection; private string server = "localhost"; private string database = "your_database_name"; private string uid = "your_username"; private string password = "your_password"; void Start() { string connectionString = $"Server={server};Database={database};Uid={uid};Pwd={password};"; connection = new MySqlConnection(connectionString); try { connection.Open(); Debug.Log("Connected to MySQL database!"); // 执行查询操作 string query = "SELECT * FROM your_table_name"; MySqlCommand cmd = new MySqlCommand(query, connection); MySqlDataReader dataReader = cmd.ExecuteReader(); while (dataReader.Read()) { // 处理查询结果 string column1 = dataReader.GetString(0); string column2 = dataReader.GetString(1); Debug.Log($"Column 1: {column1}, Column 2: {column2}"); } dataReader.Close(); } catch (Exception e) { Debug.Log("Error connecting to MySQL database: " + e.Message); } finally { connection.Close(); } } } ``` 请注意,上述代码仅为示例,你需要根据你的实际情况进行修改和扩展。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心之凌儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值