准备连接数据库的dll
-
System.Data.dll 和 System.Drawing.dll
(unity安装路径) Unity\Editor\Data\Mono\lib\mono\2.0 路径下的 System.Data.dll 和 System.Drawing.dll我的路径:Editor\Data\MonoBleedingEdge\lib\mono\2.0-api
-
MySql.Data.dll
这个网址里选择 MySQL for Visual Studio
Unity连接MySQL
把连接数据库的dll拖到Unity文件夹:Assets-Plugins文件夹下
using MySql.Data.MySqlClient;//需要引入的命名空间
using UnityEngine;
public class RegCtrl : MonoBehaviour
{
public static bool SetSql(string mydatebase, string sqlStatement)//(要设置的数据库,sql语句)
{
MySqlConnection con = new MySqlConnection(string.Format("server=localhost;Database={0};uid = root; pwd = root", mydatebase));
con.Open();
MySqlCommand com = new MySqlCommand(string.Format("{0}", sqlStatement), con);
return com.ExecuteNonQuery() > 0 ? true : false;
con.Close();
}
}
连接语句:
- 创建连接
MySqlConnection 连接名 = new MySqlConnection(“server=服务器;database=数据库名;userid= root; password=密码;charset = utf8;”); - 打开连接
连接名.Open();
命令语句:
- 创建指令
MySqlCommand 命令名 = new MySqlCommand(“sql语句”,连接名); - 判断是否执行成功
if (com.ExecuteNonQuery() > 0) {//非查询执行成功 }
//ExecuteNonQuery() 执行非查询语句,返回受操作影响的行数
读取数据集:
-
MySqlDataReader reader = 命令名.ExecuteReader();
//ExecuteReader() 执行查询语句属性
IsClosed //DataReader是否关闭
HasRows //DataReader是否包含数据
FieldCount //记录中有多少个字段方法
Read() //从0开始,判断下一条记录是否存在
Close() //关闭DataReader
Get…() //获取指定列的值 -
一个数据库连接一次只能打开一个SqlDataReader,如果要打开另一个reader,必须先关闭第一个
-
遍历数据
while(reader.Read())
{
reader.Get…(“列名”);
}
关闭:
- reader.Close();//如果有reader,先关闭reader 再关闭 连接
- 连接名.Close();