Unity3d 连接MySQL数据库测试成功

C#代码:

view plaincopy to clipboardprint?
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 + "\n" + ee.Message.ToString());   
        }   
        return ds;   
     
    }  
    #endregion    

此段代码网络上出现在很多不同的地方,已经搞不清是出自哪位高人之手了,所以在感激的同时感到抱歉无法注明出处了,希望更多的人能够从中受益。

 

另一段C#代码:

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 initialization   
void 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);   
     
}   
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值