Unity3D 连接MySQL数据库

1、MySQL下载安装运行

详见:MySQL下载安装运行

2、使用mysql-connector-net

(1)官方下载地址:https://downloads.mysql.com/archives/c-net/,下载后直接双击安装即可。

提示:不要使用版本过高的connector,不然会跟unity版本匹配不上。

(2)下载完成后,找到其安装目录,可以看到相关的版本文件夹,我本地路径如下,进入使用的版本文件夹中,把MySql.Dat.dll拖入Unity资源的Plugins文件夹中。

 Unity3D 连接MySQL数据库_第1张图片

 此时,如果Unity报错,类似下方图片,则把拖入MySql.Dat.dll的文件夹中的相关配置文件或dll拖进来。像我这个需要System.Memory,我是选用了本机C:\Users\Administrator\.nuget\packages\system.memory\4.5.3\lib\netstandard1.1路径下的文件,就不报错了。如果在相关路径下没有找到,可以试下VS的相关dll。(如果有更好的解决办法,可以在评论区分享一下)

Unity3D 连接MySQL数据库_第2张图片

Unity3D 连接MySQL数据库_第3张图片

(3)关于MySQL connector net的安装卸载问题
这个问题极其毒瘤,因为mysql-connector-net用一般方法是卸载不了的,它自带保护文件,卸载到一半时会自动回调,这个东西电脑管家和360都卸载不了,这个时候我们需要另外一个软件Uninstall Tool,自行百度下载即可,如果用这个软件卸载完成后还存在“此产品的配置信息损坏,请联系相关的技术人员”时,再下载一个Microsoft Program Install and Uninstall,然后就可以解决了。

 参考:于unity2019.3.2f1连接mysql8.0.19-win64数据库的问题

(4) 在Unity的安装目录下,如下路径的位置(选择好版本),把这几个dll放入Unity资源的Plugins文件夹中,防止打包出来连不上数据库。

Unity3D 连接MySQL数据库_第4张图片

 3、此时准备工作就做好了,下面使用代码进行连接

参考:https://blog.csdn.net/qq_34168988/article/details/116356852

    MySqlConnection mycon;
    void MySQLDBConnect()
    {
        //建立连接语句
        string constr = string.Format("server = {0};port={1};database = {2};User Id = {3};password = {4};", "localhost", "3306", "ProjectsDB", "root", "123456");

        //建立连接
        mycon = new MySqlConnection(constr);
        //打开连接
        mycon.Open();
        Debug.Log(mycon.State.ToString());

        var dataSet = ExecuteQuery("select * from Projects");
        foreach (DataRow mDr in dataSet.Tables[0].Rows)
        {
            foreach (DataColumn mDc in dataSet.Tables[0].Columns)
            {
                if (mDc.ColumnName == "ProjectItem")
                    Debug.Log(mDr[mDc].ToString());
            }
        }
    }
    /// 
	/// 关闭数据库连接
	/// 
	public void Close()
    {
        if (mycon != null)
        {
            mycon.Close();
            mycon.Dispose();
            mycon = null;
        }
    }
    /// 
	/// 执行sql语句
	/// 
	/// sql语句
	/// 
	public DataSet ExecuteQuery(string sqlString)
    {
        if (mycon.State == ConnectionState.Open)
        {
            DataSet ds = new DataSet();
            try
            {
                MySqlDataAdapter da = new MySqlDataAdapter(sqlString, mycon);
                da.Fill(ds);
            }
            catch (Exception ee)
            {
                throw new Exception("SQL:" + sqlString + "/n" + ee.Message.ToString());
            }
            finally
            {
            }
            return ds;
        }
        return null;
    }

 Unity3D 连接MySQL数据库_第5张图片

END 

你可能感兴趣的:(数据库,mysql,unity,c#)