Unity连接数据库MySQL

2015年03月21日 14:22 0 点赞 0 评论 更新于 2025-11-21 17:58

一、运行环境

Win7 64位,Unity3.5.0,MySQL5.5

二、创建Unity场景

在Unity中新建一个场景,保存并命名为Unity_MySQL。

三、创建C#脚本

新建一个C#脚本,命名为CMySql.cs。以下是CMySql.cs脚本的详细内容:

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

public class CMySql : MonoBehaviour {
// 数据库连接对象,类似于之前StoryTools中的MyConn.conn
public static MySqlConnection dbConnection;
// 数据库服务器地址
static string host = "127.0.0.1";
// 数据库用户名,建议不要修改
static string id = "root";
// 数据库密码
static string pwd = "zym123";
// 数据库名
static string database = "unity";
// 存储结果信息
static string result = "";

// SQL查询命令
private string strCommand = "Select ID from unity ;";
// 数据集对象
public static DataSet MyObj;

void OnGUI() {
// 提供输入框用于修改数据库连接信息
host = GUILayout.TextField(host, 200, GUILayout.Width(200));
id = GUILayout.TextField(id, 200, GUILayout.Width(200));
pwd = GUILayout.TextField(pwd, 200, GUILayout.Width(200));

if (GUILayout.Button("Test")) {
// 构建数据库连接字符串
string connectionString = string.Format("Server = {0}; Database = {1}; User ID = {2}; Password = {3};", host, database, id, pwd);
// 打开数据库连接
openSqlConnection(connectionString);
// 获取数据集
MyObj = GetDataSet(strCommand);
// 读取数据
ReaderData();
}
// 显示结果信息
GUILayout.Label(result);
}

// 当应用程序退出时关闭数据库连接
public static void OnApplicationQuit() {
closeSqlConnection();
}

// 打开数据库连接
private static void openSqlConnection(string connectionString) {
dbConnection = new MySqlConnection(connectionString);
dbConnection.Open();
// 获得MySql的版本信息
result = dbConnection.ServerVersion;
}

// 关闭数据库连接
private static void closeSqlConnection() {
dbConnection.Close();
dbConnection = null;
}

// 执行SQL查询
public static void doQuery(string sqlQuery) {
IDbCommand dbCommand = dbConnection.CreateCommand();
dbCommand.CommandText = sqlQuery;
IDataReader reader = dbCommand.ExecuteReader();
reader.Close();
reader = null;
dbCommand.Dispose();
dbCommand = null;
}

// 获取数据集
public DataSet GetDataSet(string sqlString) {
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());
}
return ds;
}

// 读取数据函数
void ReaderData() {
MySqlCommand mySqlCommand = new MySqlCommand("Select * from unity;", dbConnection);
MySqlDataReader reader = mySqlCommand.ExecuteReader();
try {
while (reader.Read()) {
if (reader.HasRows) {
print("ID:" + reader.GetInt32(0) + "--Name:" + reader.GetString(1) + "--Sex:" + reader.GetString(2));
}
}
} catch (Exception) {
Console.WriteLine("查询失败了!");
} finally {
reader.Close();
}
}
}

四、引用DLL文件

这个脚本中引用了System.Data.DLL,System.Drawing.DLL和MySql.Data.DLL。其中,前两个可以在Unity3D的安装目录下找到:X:\Unity3D\Editor\Data\Mono\lib\mono\2.0\,最后一个MySql.Data.DLL可以从网上下载。将这3个DLL文件放到该项目的Assets文件夹下,并在VS2010中引用。

五、启动MySQL服务

启动MySQL数据库服务,确保数据库可以正常连接。

六、创建数据库和表

创建一个数据库,命名为unity,并在其中新建一张表,也命名为unity

七、添加记录

在表中添加几条记录,可以根据实际需求自行添加。

八、运行Unity项目

  1. 在Unity中将CMySql脚本拖放到Main Camera上。
  2. 运行Unity项目,运行界面会显示数据库连接信息的输入框和一个“Test”按钮。
  3. 点击“Test”按钮,程序会尝试连接数据库,获取数据并显示MySql的版本信息。
  4. 在Game窗口可以看到使用的MySql的版本信息。

九、项目文件下载

项目文件可以在个人资源中下载。

作者信息

menghao

menghao

共发布了 3994 篇文章