Unity2019连接MySQL
使用的是Unity2019 和VS2019
在把MySql.Data.dll复制到Assets下后会报错,错误类似于:
Unable to resolve reference ’ Ubiety.Dns.Core ’
然后打开VS 在项目->管理NuGet程序包
在浏览中搜索Ubiety.Dns.Core
下载成功后可以看到保存路径
在路径中有很多的版本,unity2019默认是 .NET Standrad2.0,找到一个差不多的版本放进Assets文件夹下
然后会报和上面类似的错误,重复上述操作直到不报错。
这个是一共添加的.dll文件。
然后是Mysql的使用:
class MySql_Helper
{
private MySqlConnection mySqlConnection;
private string _host;
private string _id;
private string _pwd;
private string _dataBase;
private string tableName="user";
public MySql_Helper(string host, string id, string pwd, string dataBase)
{
_host = host;
_id = id;
_pwd = pwd;
_dataBase = dataBase;
}
/// <summary>
/// 打开数据库连接
/// </summary>
public void OpenSqlConnection()
{
string str="";
try
{
str = string.Format("Database={0};DataSource={1};User Id={2};Password={3}", _dataBase, _host, _id, _pwd,"3306");
mySqlConnection = new MySqlConnection(str);
mySqlConnection.Open();
}
catch(Exception e)
{
Debuger.LogError("MySqlAccess", "OpenSql() 服务器连接失败。 connect str={0};Error:{1}", str, e.Message);
}
}
public DataSet Query(string format, params object[] args)
{
string query = string.Format(format, args);
Debuger.Log("MySqlAccess", "Query() query={0}", query);
return ExecuteQuery(query);
}
/// <summary>
///
/// </summary>
/// <param name="sql"></param>
/// <param name="tableName">虚拟表名称</param>
/// <returns></returns>
private DataSet ExecuteQuery(string sql)
{
if(mySqlConnection.State==ConnectionState.Open)
{
DataSet ds = new DataSet();
try
{
MySqlCommand mySqlCommand = new MySqlCommand(sql, mySqlConnection);
MySqlDataAdapter mySqlDataAdapter = new MySqlDataAdapter(mySqlCommand);
mySqlDataAdapter.Fill(ds);
}
catch(Exception e)
{
Debuger.LogError("MySqlHelper", "ExecuteQuery() sql={0} Error:{1}", sql,e.Message);
}
return ds;
}
return null;
}
/// <summary>
/// 释放连接
/// </summary>
public void Close()
{
if(mySqlConnection!=null)
{
mySqlConnection.Close();
mySqlConnection.Dispose();
mySqlConnection = null;
}
}
MySql_Helper ms = new MySql_Helper("127.0.0.1", "root", "123456", "user_db");
ms.OpenSqlConnection();
DataSet ds = ms.Query("select password from user where username="+"'{0}'", username);
password = (string)ds.Tables[0].Rows[0][0];
由于我也是第一次在Unity中使用MySql,也不知道有没其他更好的方法。
参考:
https://www.cnblogs.com/vuciao/articles/10602971.html
https://blog.csdn.net/qq_42773146/article/details/93593996