打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
<Unity3D>unity连接数据库MySQL
运行环境:Win7 64位,Unity3.5.0,MySQL5.5
在Unity新建一个场景,保存并命名为Unity_MySQL。
新建一个C#Script,命名为CMySql.cs。
下面是CMySql.cs脚本的内容:
[csharp] view plaincopy
using UnityEngine;
using System;
using System.Collections;
using System.Data;
using MySql.Data.MySqlClient;
public class CMySql : MonoBehaviour {
public static MySqlConnection dbConnection;//Just like MyConn.conn in StoryTools before
static string host = "127.0.0.1";
static string id = "root";  //***不要变***
static string pwd = "zym123";  //密码
static string database = "unity";//数据库名
static string result = "";
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);
}
// On quit
public static void OnApplicationQuit()
{
closeSqlConnection();
}
// Connect to database
private static void openSqlConnection(string connectionString)
{
dbConnection = new MySqlConnection(connectionString);
dbConnection.Open();
result = dbConnection.ServerVersion;  //获得MySql的版本
}
// Disconnect from database
private static void closeSqlConnection()
{
dbConnection.Close();
dbConnection = null;
}
// MySQL Query
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;
}
#region Get DataSet
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;
}
#endregion
//读取数据函数
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();
}
}
}
这个脚本中引用了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中引用。
(Unity中的资源)
(vs2010中的资源)
启动MySQL。
创建一个数据库,命名为unity,并在其中新建一张表,也命名为unity。下图是表的设计视图。
在表中添加几条记录。(大家自己添加了~)
在Unity中将CMySql脚本拖放到Main Camera上去。运行Unity~运行界面如下:
点击Test按钮。运行结果如下:
并且我们在Game窗口可以看到我们使用的MySql的版本。
项目文件:在我个人资源中有下载。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
IronPython
【C#】图解如何添加引用using MySql.Data.MySqlClient;
mysql零散记录
C# 连接MySQL实现增删改查(详细步骤)
异常:System.ArgumentException Additional information: IBM437 is not a supported encoding name.
获取到的数据生成新的mysql表
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服