unity连接数据库MySQL

  1. 运行环境:Win7 64位,Unity3.5.0,MySQL5.5

  2. 在Unity新建一个场景,保存并命名为Unity_MySQL。

  3. 新建一个C#Script,命名为CMySql.cs。

  4. 下面是CMySql.cs脚本的内容:

    using UnityEngine;  
    using System;  
    using System.Collections;  
    using System.Data;  
    using MySql.Data.MySqlClient;  
    
    public class CMySql : MonoBehaviour {  
         public static MySqlConnection dbConnection;//Just like MyConn.conn in StoryTools before  
         static string host = "127.0.0.1";  
         static string id = "root";  //***不要变***
         static string pwd = "zym123";  //密码
         static string database = "unity";//数据库名  
         static string result = "";  
          
         private string strCommand = "Select ID from unity ;";  
         public static DataSet MyObj;  
    
         void OnGUI()  
         {  
             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"))  
             {  
                string connectionString = string.Format("Server = {0}; Database = {1}; User ID = {2}; Password = {3};",host,database,id,pwd);  
                openSqlConnection(connectionString);    
                MyObj = GetDataSet(strCommand);
    
                //读取数据函数
                ReaderData();
    
              }   
               GUILayout.Label(result);  
           }  
      
        // On quit  
        public static void OnApplicationQuit() 
        {  
            closeSqlConnection();  
        }  
         
        // Connect to database  
        private static void openSqlConnection(string connectionString) 
        {  
            dbConnection = new MySqlConnection(connectionString);  
            dbConnection.Open();  
            result = dbConnection.ServerVersion;  //获得MySql的版本
        }  
         
        // Disconnect from database  
        private static void closeSqlConnection() 
        {  
            dbConnection.Close();  
            dbConnection = null;  
        }  
          
        // MySQL Query  
        public static void doQuery(string sqlQuery) 
        {  
            IDbCommand dbCommand = dbConnection.CreateCommand();      
            dbCommand.CommandText = sqlQuery;  
            IDataReader reader = dbCommand.ExecuteReader();  
            reader.Close();  
            reader = null;  
           dbCommand.Dispose();  
            dbCommand = null;  
        }  
        #region Get DataSet  
        public  DataSet GetDataSet(string sqlString)  
        {   
            DataSet ds = new DataSet();  
            try  
            {  
                MySqlDataAdapter da = new MySqlDataAdapter(sqlString, dbConnection);  
                da.Fill(ds);  
         
            }  
            catch (Exception ee)  
            {       
                throw new Exception("SQL:" + sqlString + "\n" + ee.Message.ToString());  
            }  
            return ds;  
        
        }  
        #endregion   
    
        //读取数据函数
        void ReaderData()
        {
            MySqlCommand mySqlCommand = new MySqlCommand("Select * from unity;", dbConnection);
            MySqlDataReader reader = 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();
            }         
        }
    }  
    

     

  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中引用。

  6. unity连接数据库MySQL_第1张图片(Unity中的资源)unity连接数据库MySQL_第2张图片(vs2010中的资源)

  7. 启动MySQL。

  8. unity连接数据库MySQL_第3张图片

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

  10. 在表中添加几条记录。(大家自己添加了~)

  11. 在Unity中将CMySql脚本拖放到Main Camera上去。运行Unity~运行界面如下:

  12. unity连接数据库MySQL_第4张图片

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

  14. unity连接数据库MySQL_第5张图片

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

  16. 项目文件:在我个人资源中有下载。

你可能感兴趣的:(Unity3D,Unity3D,MySQL,数据库)