前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >unity连接mysql数据库-最新详细

unity连接mysql数据库-最新详细

作者头像
唔仄lo咚锵
发布2022-05-10 10:21:54
2K0
发布2022-05-10 10:21:54
举报
文章被收录于专栏:blog(为什么会重名,真的醉了)

文章目录

写在前面

版本兼容问题走了许多弯路,令人非常火大。软件的更新,但是配套和支持往往没有跟上,甚至反而不兼容旧版本,而网上多数博客已经不再适用,故执笔记录,希望可以帮助到你。

在这里插入图片描述
在这里插入图片描述

相关安装包已上传网盘。

在这里插入图片描述
在这里插入图片描述

链接:https://pan.baidu.com/s/16cNlfe8_XTrW4p3HfgLUNQ 提取码:pdy1

Mysql

安装Mysql及相关组件,官网/网盘都可。 https://dev.mysql.com/downloads/

在这里插入图片描述
在这里插入图片描述

MySQL Installer for Windows

安装Mysql8.0,已安装可跳过此步,相关教程繁多,不再赘述。 https://dev.mysql.com/downloads/installer/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Connector/NET

版本兼容问题,这里用的是v6.3.9 https://downloads.mysql.com/archives/c-net/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

MySQL for Visual Studio

https://dev.mysql.com/downloads/windows/visualstudio/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

插播反爬信息 )博主CSDN地址:https://wzlodq.blog.csdn.net/

Visual Studio

Visual Studio2022暂不支持Mysql!!! 或者Mysql暂不支持Visual Studio2022!!! 直接劝退到2019

视图->服务器资源管理器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

unity

MySql.Data.dll

unity2020已经内置了System.Data.dll和System.Drawing.dll,只需导入MySql.Data.dll即可。 该文件在前面Connector/NET安装目录下(也已上传网盘),如: C:\Program Files (x86)\MySQL\MySQL Connector Net 6.3.9\Assemblies\v4.0

在这里插入图片描述
在这里插入图片描述

测试脚本

新建两个脚本测试连接:

在这里插入图片描述
在这里插入图片描述

SqlAccess.cs

代码语言:javascript
复制
using System;
using System.Data;
using MySql.Data.MySqlClient;
using UnityEngine;
using System.Text;

public class SqlAccess
{
	public static MySqlConnection dbConnection;
	public SqlAccess(string host, string port, string username, string pwd, string database)
	{
		//连接数据库
		try
		{
			string connectionString = string.Format("server = {0};port={1};database = {2};user = {3};password = {4};", host, port, database, username, pwd);
			Debug.Log(connectionString);
			dbConnection = new MySqlConnection(connectionString);
			dbConnection.Open();
			Debug.Log("连接成功!");
		}
		catch (Exception e)
		{
			throw new Exception("连接失败!" + e.Message.ToString());
		}
	}

	//关闭连接
	public void Close()
	{
		if (dbConnection != null)
		{
			dbConnection.Close();
			dbConnection.Dispose();
			dbConnection = null;
		}
	}

	//查询
	public DataSet SelectWhere(string tableName, string[] items, string[] col, string[] operation, string[] values)
	{

		if (col.Length != operation.Length || operation.Length != values.Length)
			throw new Exception("col.Length != operation.Length != values.Length");

		StringBuilder query = new StringBuilder();
		query.Append("SELECT ");
		query.Append(items[0]);

		for (int i = 1; i < items.Length; ++i)
		{
			query.Append(", ");
			query.Append(items[i]);
		}

		query.Append(" FROM ");
		query.Append(tableName);
		query.Append(" WHERE 1=1");

		for (int i = 0; i < col.Length; ++i)
		{
			query.Append(" AND ");
			query.Append(col[i]);
			query.Append(operation[i]);
			query.Append("'");
			query.Append(values[0]);
			query.Append("' ");
		}
		Debug.Log(query.ToString());
		return ExecuteQuery(query.ToString());
	}

	//执行sql语句
	public static DataSet ExecuteQuery(string sqlString)
	{
		if (dbConnection.State == ConnectionState.Open)
		{
			DataSet ds = new DataSet();
			try
			{
				MySqlDataAdapter da = new MySqlDataAdapter(sqlString, dbConnection);
				da.Fill(ds);
			}
			catch (Exception ee)
			{
				throw new Exception("SQL:" + sqlString + "/n" + ee.Message.ToString());
			}
			finally
			{
			}
			return ds;
		}
		return null;
	}
}

TestSql.cs

代码语言:javascript
复制
using System.Data;
using UnityEngine;

public class TestSql : MonoBehaviour
{
    public string host = "localhost";
    public string port = "3306";
    public string username = "root";
    public string pwd = "123456";
    public string database = "demo";
    void Start()
    {
        SqlAccess sql = new SqlAccess(host, port, username, pwd, database);

        string[] items = { "name" };//字段名
        string[] col = { };
        string[] op = { };
        string[] val = { };
        DataSet ds = sql.SelectWhere("test", items, col, op, val);//替换表名test

        if (ds != null)
        {
            DataTable table = ds.Tables[0];
            foreach (DataRow row in table.Rows)
            {
                string str = "";
                foreach (DataColumn column in table.Columns)
                    str += row[column] + " ";
                Debug.Log(str);
            }
        }
    }
}

测试结果

在这里插入图片描述
在这里插入图片描述

新建GameObject,将TestSql脚本绑定上去,记得修改TestSql密码数据库名字段名等。

在这里插入图片描述
在这里插入图片描述

运行测试:

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-01-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 写在前面
  • Mysql
    • MySQL Installer for Windows
      • Connector/NET
        • MySQL for Visual Studio
        • Visual Studio
        • unity
          • MySql.Data.dll
            • 测试脚本
              • 测试结果
              相关产品与服务
              云数据库 SQL Server
              腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档