查看: 1737|回复: 0
打印 上一主题 下一主题

在unity3d中连接数据库

[复制链接]

5552

主题

2

听众

8万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
11

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2012-3-12 14:10:57 |只看该作者 |倒序浏览
/*在unity3d中连接数据库 收藏 1.C#代码:*/using UnityEngine;using System;using System.Collections;using System.Data;using MySql.Data.MySqlClient;public class CMySql : MonoBehaviour {    // Global variables    public static MySqlConnection dbConnection;//Just like MyConn.conn in StoryTools before     static string host = "192.168.1.100";     static string id = "mysql";//这里是你自己的数据库的用户名字,我一开始想用root,发现不行,后来添加了新的用户才可以     static string pwd = "123456";     static string database = "test";     static string result = "";    private string strCommand = "Select * from unity3d_test ORDER BY id;";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);         }          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;        //Debug.Log("Connected to database."+result);    }       // Disconnect from database    private static void closeSqlConnection() {        dbConnection.Close();        dbConnection = null;        //Debug.Log("Disconnected from database."+result);    }        // 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)    {        //string sql = UnicodeAndANSI.UnicodeAndANSI.UnicodeToUtf8(sqlString);      DataSet ds = new DataSet();        try        {            MySqlDataAdapter da = new MySqlDataAdapter(sqlString, dbConnection);            da.Fill(ds);           }        catch (Exception ee)        {               throw new Exception("SQL:" + sqlString + "
" + ee.Message.ToString());        }        return ds;      }    #endregion } using UnityEngine;using System;using System.Collections;using System.Data;public class DataBaseTest : MonoBehaviour {public GUISkin myGUISkin = new GUISkin();string strID = "";string strName = "";string strSex = "";int Index = 1;// Use this for initializationvoid Start () {}void OnGUI(){  GUI.skin = myGUISkin;  if (GUI.Button(new Rect(100,320,100,100),"Click Me"))  {   foreach(DataRow dr in CMySql.MyObj.Tables[0].Rows)   {    if (Index.ToString() == dr["ID"].ToString())    {     strID = dr["ID"].ToString();     strName =  dr["Name"].ToString();     strSex = dr["Sex"].ToString();          break;    }   }      Index++;    if(Index > 5)   {    Index = 1;    }       }  GUI.Label(new Rect(320,100,150,70),"DataBaseTest");  GUI.Label(new Rect(300,210,150,70),strID);  GUI.Label(new Rect(300,320,150,70),strName);  GUI.Label(new Rect(300,430,150,70),strSex);  }} 2.導入dll  同先前的帖子 , 將MySql.data.dll Import至Assets底下 , 然後再到UnityEditorDataFrameworksMono.framework 中將System.Data.dll 也一起Import至Assets內 , 當然 , 如果想顯示中文的話 , 請參考中文視頻教學 , 建立一個GUISkin與字型 3.建立數據庫內容  主要是因為代碼中的這段內容     static string host = "192.168.1.100";     static string id = "mysql";     static string pwd = "123456";     static string database = "test";     private string strCommand = "Select * from unity3d_test ORDER BY id;";其中host ,id , pwd 請自行設定 , 簡單的說就是連進你的MySQL啦~然後建立一個名為test的Database , 在這個test下建立一張table , 取名為 unity3d_test ,接下來就為這張unity3d_test建立3個欄位 : ID , Name , Sex (記得將ID設定為primary key 且默認值為1)再來自行填入5筆資料(5筆資料的原因是腳本那邊是設定成5筆資料一個循環 , 使用者可以自行更改腳本試試) 4.建立GameObject  建立完GameObject後將上面兩個腳本掛上去 , 如果有建立GUISkin , 記得指定GUISkin 5.執行  執行後先按Test按鈕來連接數據庫 , 然後再按"Click Me"來顯示數據庫內的內容
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

关闭

站长推荐上一条 /1 下一条

手机版|纳金网 ( 闽ICP备08008928号

GMT+8, 2024-5-19 04:43 , Processed in 0.089167 second(s), 32 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部