unity连接数据库MySQL简单例子
16lz
2021-01-22
在Unity新建一个场景,保存并命名为Unity_MySQL。
新建一个C#Script,命名为CMySql.cs。
下面是CMySql.cs脚本的内容:
- usingUnityEngine;
- usingSystem;
- usingSystem.Collections;
- usingSystem.Data;
- usingMySql.Data.MySqlClient;
- publicclassCMySql:MonoBehaviour{
- publicstaticMySqlConnectiondbConnection;//JustlikeMyConn.conninStoryToolsbefore
- staticstringhost="127.0.0.1";
- staticstringid="root";//***不要变***
- staticstringpwd="zym123";//密码
- staticstringdatabase="unity";//数据库名
- staticstringresult="";
- privatestringstrCommand="SelectIDfromunity;";
- publicstaticDataSetMyObj;
- voidOnGUI()
- {
- 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"))
- {
- stringconnectionString=string.Format("Server={0};Database={1};UserID={2};Password={3};",host,database,id,pwd);
- openSqlConnection(connectionString);
- MyObj=GetDataSet(strCommand);
- //读取数据函数
- ReaderData();
- }
- GUILayout.Label(result);
- }
- //Onquit
- publicstaticvoidOnApplicationQuit()
- {
- closeSqlConnection();
- }
- //Connecttodatabase
- privatestaticvoidopenSqlConnection(stringconnectionString)
- {
- dbConnection=newMySqlConnection(connectionString);
- dbConnection.Open();
- result=dbConnection.ServerVersion;//获得MySql的版本
- }
- //Disconnectfromdatabase
- privatestaticvoidcloseSqlConnection()
- {
- dbConnection.Close();
- dbConnection=null;
- }
- //MySQLQuery
- publicstaticvoiddoQuery(stringsqlQuery)
- {
- IDbCommanddbCommand=dbConnection.CreateCommand();
- dbCommand.CommandText=sqlQuery;
- IDataReaderreader=dbCommand.ExecuteReader();
- reader.Close();
- reader=null;
- dbCommand.Dispose();
- dbCommand=null;
- }
- #regionGetDataSet
- publicDataSetGetDataSet(stringsqlString)
- {
- DataSetds=newDataSet();
- try
- {
- MySqlDataAdapterda=newMySqlDataAdapter(sqlString,dbConnection);
- da.Fill(ds);
- }
- catch(Exceptionee)
- {
- thrownewException("SQL:"+sqlString+"\n"+ee.Message.ToString());
- }
- returnds;
- }
- #endregion
- //读取数据函数
- voidReaderData()
- {
- MySqlCommandmySqlCommand=newMySqlCommand("Select*fromunity;",dbConnection);
- MySqlDataReaderreader=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文件夹下。
启动MySQL。
创建一个数据库,命名为unity,并在其中新建一张表,也命名为unity。
在表中随便添加几条记录。
在Unity中将CMySql脚本拖放到Main Camera上去。
点击运行按钮。
点击Test按钮。
在Game窗口可以看到数据库内unity表的几条记录和MySql的版本。
更多相关文章
- 线程往数据库里插数据时偶尔会报错
- 通过SQL语句访问远程数据库
- [SQL Server] 数据库日志文件自动增长导致连接超时的分析
- JSP连接Mysql的数据库连接池配置相关
- sql2005 数据库连接的时候,无法连接外部服务器
- sqlloader导出数据和导入数据
- oracle数据库中sql语言创建表,更新,删除数据
- Access查找数据的SQL语句中,LIKE后面不可以用ESCAPE吗?
- 将变量(表名,数据)传递给python mysqld查询