Unity链接MySql数据库

一、连接准备

1. MySql.Data插件

  • Visual Studio中下载
  • 打开Visual Studio_项目_管理NuGet程序包在这里插入图片描述
  • 浏览中搜索MySql.Data并下载在这里插入图片描述

2.MySql官网下载插件

  • 前提已经安装mysql,然后到官网下载以下三个东西(最好不要使用最新版本)
    • MySQL Connector Net
    • Connector ODBC 8.0
    • MySQL for VIsaul Studio在这里插入图片描述在这里插入图片描述
  • 下载完直接双击(傻瓜式)安装即可

3.连接测试(可选)

  • 打开Visual Studio_视图_服务器资源管理器在这里插入图片描述

  • 在弹出的窗口,右键数据连接,选择添加连接在这里插入图片描述

  • 选择MySQL Database,点击继续在这里插入图片描述

  • 输入数据库地址、账号、密码、数据库名,然后点击测试连接在这里插入图片描述

  • 弹出对话框“测试连接成功”,则可进入下一步在这里插入图片描述

二、Unity链接MySql

1.在Unity中导入dll文件

  • dll如下(共五个)
    • 如果不打包exe文件,仅需导入最后一个dll文件即可
      在这里插入图片描述

在路径:C:\Program Files (x86)\MySQL\MySQL Connector Net6.8.7\Assemblies\v2.0中找到MySql.Data.dll导入Unity中Plugins文件夹下

在这里插入图片描述

对应Unity的安装目录:Unity\Editor\Data\MonoBleedingEdge\lib\mono\unityjit;找到其余dll文件

在这里插入图片描述

2. 创建数据库,内容如下:在这里插入图片描述

3. 编写查询脚本进行测试

public void InquireMysql()
    {
    
    
        //数据库地址、用户名、密码、数据库名
        string sqlSer = "server = localhost;port = 3306;database = test;user = root;password = 123456";
        //建立连接
        MySqlConnection conn = new MySqlConnection(sqlSer);
        try
        {
    
    
            conn.Open();
            Debug.Log("------链接成功------");
            //sql语句
            string sqlQuary = " select * from mytable";

            MySqlCommand comd = new MySqlCommand(sqlQuary, conn);
            MySqlDataReader reader = comd.ExecuteReader();

            while (reader.Read())
            {
    
    
                //通过reader获得数据库信息
                Debug.Log(reader.GetString("user_name"));
                Debug.Log(reader.GetString("user_password"));
            }
        }
        catch (System.Exception e)
        {
    
    
            Debug.Log(e.Message);
        }
        finally
        {
    
    
            conn.Close();
        }
    }

运行结果:在这里插入图片描述

4. 编写插入脚本进行测试

  • 修改,删除处理在此脚本基础上修改SQL语句即可
public void ChangedMysql()
    {
    
    
        //数据库地址、用户名、密码、数据库名
        string sqlSer = "server = localhost;port = 3306;database = test;user = root;password = 123456";
        MySqlConnection conn = new MySqlConnection(sqlSer);
        try
        {
    
    
            conn.Open();
            Debug.Log("------链接成功------");
            string sqlQuary = "insert into mytable(user_name,user_password) values (@user_name, @user_password)";

            MySqlCommand comd = new MySqlCommand(sqlQuary, conn);
            comd.Parameters.AddWithValue("@user_name", "用户名");
            comd.Parameters.AddWithValue("@user_password", "密码");

            comd.ExecuteNonQuery();

        }
        catch (System.Exception e)
        {
    
    
            Debug.Log(e.Message);
        }
        finally
        {
    
    
            conn.Close();
        }
    }

运行结果:在这里插入图片描述

三、问题处理

1.打包后无法连接数据库

  • 首先确认所需的五个dll文件是否已经全部导入
  • 在Unity中去修改Api Compatibility Level为.NET 4.x

路径:Project Setting->player->othersetting->Configuration->Api Compatibility Level
在这里插入图片描述

  • 如果Unity版本是2018及以前的,还需要导入System.Data.dll和System.Drawing.dll两个文件;

2.遇到其他问题欢迎读者提出

猜你喜欢

转载自blog.csdn.net/Xz616/article/details/128903171