Unity3D连接MySQL(二)讲解篇

目录

1. 引入所需 dll 文件 

2. 代码流程

3. DataSet 解析


Unity3D连接MySQL(一)使用篇

1. 引入所需 dll 文件 

D:\Unity\2018.3.14f1\Editor\Data\Mono\lib\mono\2.0 

I18N.CJK.dll、I18N.dll、I18N.West.dll

MySql.Data 去 Mysql 官网下载 

Unity目录下添加Plugins文件夹,将dll放进去 unity将会自动引用。

 

2. 代码流程

首先 Select() 拼接 sql 语句,而后 ExecuteQuery() 执行sql语句,返回 DataSet

using (var connection = GetSqlConn()) 获取数据库连接

connStr 封装好连接数据库的 conn 参数,这里的参数要跟 Navicat 里面数据库连接匹配

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

public class SqlHelper
{
    private static SqlHelper _instance = new SqlHelper();
    private static string connStr = "Database=student;Data Source = 127.0.0.1; User Id = root; Password=123456;port=3306";
    public static SqlHelper Instance
    {
        get
        {
            return _instance;
        }
    }

    /// <summary>
    /// 获取连接
    /// </summary>
    /// <returns></returns>
    public static MySqlConnection GetSqlConn()
    {
        MySqlConnection sqlConn = null;
        sqlConn = new MySqlConnection(connStr);
        return sqlConn;
    }

    
    /// <summary>
    /// 查询指定字段
    /// </summary>
    /// <param name="tableName"></param>
    /// <param name="items"></param>
    /// <returns></returns>
    public static DataSet Select(string tableName, string[] items)
    {
        string query = "SELECT " + items[0];
        for (int i = 1; i < items.Length; ++i)
        {
            query += ", " + items[i];
        }
        query += " FROM " + tableName;
        Debug.LogFormat("query: {0}", query);
        return ExecuteQuery(query);
    }

    ......

    /// <summary>
    /// 执行查询语句,返回DataSet
    /// </summary>
    /// <param name="SQLString">查询语句</param>
    /// <returns>DataSet</returns>
    public static DataSet ExecuteQuery(string SQLString)
    {

        using (var connection = GetSqlConn())
        {
            DataSet ds = new DataSet();
            try
            {
                connection.Open();
                MySqlDataAdapter da = new MySqlDataAdapter(SQLString, connection);
                da.Fill(ds);
            }
            catch (MySqlException ex)
            {
                connection.Close();
                throw new Exception(ex.Message);
            }
            finally
            {
                connection.Close();
            }
            return ds;
        }
    }


}

 

3. DataSet 解析

数据集中获取数据表,数据表可以直接理解为数据库表的形式。

DataTable table = ds.Tables[0]; 拿第一个表即可

table.Rows[0][0].ToString()  获取对应位置的值

 

DataSet 数据集,可以自由移动指针,数据与DB断开。

DataTable 数据表

DataReader 数据处理速度快,但是只读,移到下一行就不能查看上一行数据

 

ds.Tables.Count - 返回表的数量,一个 select 返回一个 table

ds.Tables[0].Rows.Count - 第一个表的条数

ds.Tables[0].Rows[0].ItemArray[0] - 第一个表,第一条数据,第一个值

 

防止数组越界:取值前判断ds.Tables.Count、ds.Tables[0].Rows.Count等大小

 

    /// <summary>
    /// 从数据库查找
    /// </summary>
    private void getDevNameAllFromDB()
    {
        DataSet ds = new DataSet();
        ds = queryDevNameAllDB(ds);
        //拿到的table,一行多列
        if (ds != null)
        {
            DataTable table = ds.Tables[0];
            //Debug.LogFormat("列数:{0}", table.Columns.Count);
            Debug.LogFormat("查找数据库行数:{0}", table.Rows.Count);
            for (int i = 0; i < table.Rows.Count; i++)
            {
                Debug.LogFormat("table:{1} {2} {3} {4}", i, table.Rows[i][0].ToString(), table.Rows[i][1].ToString(),
                    table.Rows[i][2].ToString(), table.Rows[i][3].ToString());
                //Debug.LogFormat("table.Rows[{0}][1]:{1}", i, table.Rows[i][1].ToString());
                
            }
        }
    }

 

 

 

 

 

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在Unity3D连接MySQL数据库,首先需要下载并安装MySQL连接器驱动包。 1. 打开Unity3D开发环境,创建一个新的项目。 2. 在浏览器中搜索并下载MySQL连接器驱动包。这个驱动包是一个DLL文件,将会用于在Unity连接和操作MySQL数据库。 3. 在Unity项目的Assets目录下,创建一个新的文件夹,例如"Plugins"。 4. 将下载的MySQL连接器驱动包(DLL文件)复制到刚刚创建的"Plugins"文件夹中。 5. 在Unity编辑器中,选择"Assets" > "Reimport All"以确保Unity将驱动包加载到项目中。 6. 确保已安装MySQL数据库,并记住数据库的连接信息,例如主机名、端口号、用户名和密码。 7. 在Unity中创建一个C#脚本,用于连接和操作MySQL数据库。 8. 在脚本中引入连接器驱动包的命名空间。 9. 在脚本中编写连接和操作数据库的代码。首先创建一个MySQL连接对象,然后使用连接对象的方法执行SQL查询或更新语句。 10. 将脚本附加到Unity场景的对象上,或在代码中实例化脚本对象来执行数据库操作。 11. 运行Unity项目,即可连接和操作MySQL数据库。 值得注意的是,使用第三方数据库连接器驱动包需要注意其兼容性和安全性。请确保所使用的MySQL连接器驱动包是来自可信的来源,并与您的Unity版本和MySQL数据库版本兼容。 ### 回答2: 连接Unity3DMySQL数据库需要使用一个适当的MySQL驱动包。这个驱动包允许Unity3DMySQL服务器进行通信,并执行数据库操作。 首先,我们需要下载适用于Unity3DMySQL驱动包。你可以通过在网上搜索"Unity3D MySQL驱动包"来找到相应的下载链接。确保下载适用于你所使用的Unity版本的驱动包。 下载完驱动包后,打开Unity3D项目。在Unity的项目资源窗口中,将驱动包拖动到Assets文件夹下。 接下来,需要Unity的编辑器中设置连接MySQL数据库的相关信息。在Unity中,点击上方菜单栏中的"Edit",然后选择"Project Settings"。在Project Settings窗口中,找到左侧的"Player"选项。 在Player选项中,展开"Other Settings"并找到"Scripting Define Symbols"。在这个字段中,添加以下代码: MYSQL_PRESENT 保存设置后,Unity会重新编译项目,并将MySQL驱动包编译到项目中。 现在,你可以在脚本中建立与MySQL数据库的连接。你需要使用Unity提供的相关命名空间(namespace)来引用MySQL相关的类和方法。通过使用正确的连接字符串、用户名和密码,你可以实现与MySQL数据库的连接。 在连接过程中,你可以编写适当的代码来执行数据库查询、插入、更新和删除等操作。确保你使用适当的错误处理来处理连接问题或数据库操作过程中的任何错误。 这是连接Unity3DMySQL的基本步骤。通过正确配置MySQL驱动包并实现正确的连接代码,你可以在Unity3D项目中成功连接和操作MySQL数据库。 ### 回答3: Unity3D连接MySQL需要使用MySQL Connector/Net驱动包。以下是通过Unity3D连接MySQL的步骤: 1. 下载MySQL Connector/Net驱动包:在MySQL官方网站上下载安装最新版的MySQL Connector/Net驱动包(也称为MySQL Connector/Net或MySQL Connector)。 2. 导入驱动包:将下载的驱动包解压,并将其中的Dll文件拷贝到Unity3D项目的Assets文件夹下或任意你想要的位置。 3. 在Unity3D中创建C#脚本:创建一个C#脚本,用于连接和操作MySQL数据库。在脚本中引入MySQL Connector/Net的命名空间。 4. 连接数据库:在脚本中使用MySQL Connector/Net提供的方法来创建一个MySQL连接对象,并通过该对象连接MySQL数据库。 5. 执行SQL查询:通过MySQL连接对象,使用SQL语句来执行查询操作(例如SELECT语句)或更新操作(例如INSERT、UPDATE或DELETE语句)。 6. 处理查询结果:根据需要,可以将查询结果存储在Unity3D中的变量中,并对其进行进一步处理。 7. 断开连接:在完成数据库操作后,记得关闭MySQL连接,以释放资源。 需要注意的是,连接MySQL数据库时需要提供正确的连接字符串、用户名和密码。此外,要确保MySQL数据库已正确设置,并具有允许远程连接的权限。 总结: 通过下载和导入MySQL Connector/Net驱动包,可以在Unity3D中通过C#脚本连接MySQL数据库。连接操作包括创建连接对象、执行SQL查询和处理结果。在完成数据库操作后,要记得关闭连接

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值