暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL

原创 zjj 2022-07-25
339

Unity连接数据库MySQL

Unity3d

  1. 运行环境:Win7 64位,Unity3.5.0,MySQL5.5
  2. 在Unity新建一个场景,保存并命名为Unity_MySQL。
  3. 新建一个C#Script,命名为CMySql.cs。
  4. 下面是CMySql.cs脚本的内容:
  5. using UnityEngine;  
  6. using System;  
  7. using System.Collections;  
  8. using System.Data;  
  9. using MySql.Data.MySqlClient;  
  10. public class CMySql : MonoBehaviour {  
  11.      public static MySqlConnection dbConnection;//Just like MyConn.conn in StoryTools before  
  12.      static string host = "127.0.0.1";  
  13.      static string id = "root";  //***不要变***
  14.      static string pwd = "zym123";  //密码
  15.      static string database = "unity";//数据库名  
  16.      static string result = "";  
  17.       
  18.      private string strCommand = "Select ID from unity ;";  
  19.      public static DataSet MyObj;  
  20.      void OnGUI()  
  21.      {  
  22.          host = GUILayout.TextField( host, 200, GUILayout.Width(200));  
  23.          id = GUILayout.TextField( id, 200, GUILayout.Width(200));  
  24.          pwd = GUILayout.TextField( pwd, 200, GUILayout.Width(200));  
  25.          if(GUILayout.Button("Test"))  
  26.          {  
  27.             string connectionString = string.Format("Server = {0}; Database = {1}; User ID = {2}; Password = {3};",host,database,id,pwd);  
  28.             openSqlConnection(connectionString);    
  29.             MyObj = GetDataSet(strCommand);
  30.             //读取数据函数
  31.             ReaderData();
  32.           }   
  33.            GUILayout.Label(result);  
  34.        }  
  35.   
  36.     // On quit  
  37.     public static void OnApplicationQuit() 
  38.     {  
  39.         closeSqlConnection();  
  40.     }  
  41.      
  42.     // Connect to database  
  43.     private static void openSqlConnection(string connectionString) 
  44.     {  
  45.         dbConnection = new MySqlConnection(connectionString);  
  46.         dbConnection.Open();  
  47.         result = dbConnection.ServerVersion;  //获得MySql的版本
  48.     }  
  49.      
  50.     // Disconnect from database  
  51.     private static void closeSqlConnection() 
  52.     {  
  53.         dbConnection.Close();  
  54.         dbConnection = null;  
  55.     }  
  56.       

  // MySQL Query  Unity3d

  1.     public static void doQuery(string sqlQuery) 
  2.     {  
  3.         IDbCommand dbCommand = dbConnection.CreateCommand();      
  4.         dbCommand.CommandText = sqlQuery;  
  5.         IDataReader reader = dbCommand.ExecuteReader();  
  6.         reader.Close();  
  7.         reader = null;  
  8.        dbCommand.Dispose();  
  9.         dbCommand = null;  
  10.     }  
  11.     #region Get DataSet  
  12.     public  DataSet GetDataSet(string sqlString)  
  13.     {   
  14.         DataSet ds = new DataSet();  
  15.         try  
  16.         {  
  17.             MySqlDataAdapter da = new MySqlDataAdapter(sqlString, dbConnection);  
  18.             da.Fill(ds);  
  19.      
  20.         }  
  21.         catch (Exception ee)  
  22.         {       
  23.             throw new Exception("SQL:" + sqlString + "\n" + ee.Message.ToString());  
  24.         }  
  25.         return ds;  
  26.     
  27.     }  
  28.     #endregion   
  29.     //读取数据函数
  30.     void ReaderData()
  31.     {
  32.         MySqlCommand mySqlCommand = new MySqlCommand("Select * from unity;", dbConnection);
  33.         MySqlDataReader reader = mySqlCommand.ExecuteReader();
  34.         try
  35.         {
  36.             while (reader.Read())
  37.             {
  38.                 if (reader.HasRows)
  39.                 {
  40.                     print("ID:" + reader.GetInt32(0) + "--Name:" + reader.GetString(1) + "--Sex:" + reader.GetString(2));
  41.                 }
  42.             }
  43.         }
  44.         catch (Exception)
  45.         {
  46.             Console.WriteLine("查询失败了!");
  47.         }
  48.         finally
  49.         {
  50.             reader.Close();
  51.         }         
  52.     }
  53. }  


5.这个脚本中引用了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中引用。

http://img.blog.csdn.net/20130506125120774

(Unity中的资源)

http://img.blog.csdn.net/20130506125004589Unity3d

(vs2010中的资源Unity3d

6.启动MySQL。

http://img.blog.csdn.net/20130506130239190

7.创建一个数据库,命名为unity,并在其中新建一张表,也命名为unity。下图是表的设计视图。

http://img.blog.csdn.net/20130506130144176

8.在表中添加几条记录。(大家自己添加了~)
9.在Unity中将CMySql脚本拖放到Main Camera上去。运行Unity~运行界面如下:

http://img.blog.csdn.net/20130506130649076

10.点击Test按钮。运行结果如下:
Unity3d

http://img.blog.csdn.net/20130506130810992

11.并且我们在Game窗口可以看到我们使用的MySql的版本。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论