Unity3D 学习笔记(四) Unity连接MySQL数据库
这两天实现Unity连接到数据库搞到我快疯了,一直提示“由于目标计算机积极拒绝,无法连接”,后来发现是dll的路径设置有问题以及一些库的使用问题,哎,吐血捂脸。1.首先安装MySQL我安装的是mysql-installer-community-5.5.28.3.exe(可以访问http://www.mysql.com/downloads/mysql/免费下载)安装成功后
这两天实现Unity连接到数据库搞到我快疯了,一直提示“由于目标计算机积极拒绝,无法连接”,后来发现是dll的路径设置有问题以及一些库的使用问题,哎,吐血捂脸。
1.首先安装MySQL
我安装的是mysql-installer-community-5.5.28.3.exe(可以访问http://www.mysql.com/downloads/mysql/免费下载)
安装成功后,运行cmd,打开\\%安装根目录%\\MySQL\MySQL Server 5.5\bin,输入指令mysql -u root -p
root为用户名,输入密码后输入show databases;查看。
2.创建数据库
使用MySQL提供的MySQL Workbench工具建立一个简单的数据库myscoresdb,然后创建一个数据表并命名为HIscores,添加3条数据,分别为id,name和score用来保存用户名和得分,其中主键为id,这个过程比较简单,不细说。
3.导入DLL文件
这是解决我的困扰的重要步骤。
①打开Unity的安装目录,\\%安装根目录%\\Editor\Data\Mono\lib\mono\2.0\中,将System.Data.dll和System.Drawing.dll拷贝到Unity工程目录下Assets文件中。
②打开MySQL的安装目录,\\%安装根目录%\\Connector NET 6.5.4\Assemblies\v2.0中,将MySql.Data.dll拷贝到Unity工程目录下Assets文件中。
使用哪个文件夹下的MySql.Data.dll要看具体需要,之前我选择的是v4下的MySql.Data.dll,结果一下提示MissingMethodException: Method not found: 'System.Threading.Monitor.Enter'.
4.创建连接MySQL脚本。
在Unity项目中创建c#脚本,使用Visual Studio 2010编辑该脚本。
首先添加3个dll的引用:项目->添加引用->浏览,将3个dll顺利添加。
然后编写连接脚本。
using UnityEngine;
using System;
using System.Collections;
using System.Data;
using MySql.Data.MySqlClient;
public class Test : MonoBehaviour
{
void Start()
{
string constr = "server=localhost;Database=myscoresdb;User Id=root;password=1111";
//建立连接的语句
//如果是本地数据库server为localhost,不是则输入server的地址
MySqlConnection mycon = new MySqlConnection(constr); //建立连接
mycon.Open();
//插入的指令
MySqlCommand mycmd = new MySqlCommand("insert into hiscores(id,name,score) values(4,'lisi',98)", mycon);
if (mycmd.ExecuteNonQuery() > 0)
Debug.Log("Insert success!");
//查询指令
string selstr = "select * from hiscores";
MySqlCommand myselect = new MySqlCommand(selstr, mycon);
DataSet ds = new DataSet();
try
{
MySqlDataAdapter da = new MySqlDataAdapter(selstr, mycon);
da.Fill(ds);
Debug.Log("Query success!");
print(ds.Tables[0].Rows[0][0]);
}
catch (Exception ee)
{
throw new Exception("SQL: " + selstr + "\n" + ee.Message.ToString());
}
mycon.Close(); //关闭连接
}
}
保存脚本,在Unity中将测试脚本关联到摄像机并测试。
如果还是不能连接数据库,则可以启动TCP/IP协议再次尝试一下。
更多推荐
所有评论(0)