1. 程式人生 > 其它 >Unity網路程式設計二 : 伺服器端連線資料庫(C#連線MySQL)

Unity網路程式設計二 : 伺服器端連線資料庫(C#連線MySQL)

技術標籤:C#Unity網路程式設計資料庫c#mysql資料庫

服務端需要連線資料庫才能與客戶端進行資料的互動,本案例使用Mysql作為連線資料庫

開發環境:

  • VS 2019
  • MySQL
  • .Net
    一、連線MySQL環境配置

為了連線MySQL,需要配置檔案MySql.Data.dll,如果使用的是Vs2019,可以直接下載使用,不需要進行自己下載配置, 具體配置方式為:

首先直接使用其方法MySqlConnection,在出現錯誤提示後Alt+Enter顯示可能修補的程式,然後選擇安裝MySQL.Data,VS2019會自動下載安裝
在這裡插入圖片描述

當然也可以自行手動新增,在MySQL官網下載後,手動安裝即可

二、定義連線連線資料庫需要變數

首先建立一個類ConnDB作為封裝資料庫連線開啟關閉使用,並定義需要使用的資料庫連線變數:

  • 資料庫地址:本機為localhost
  • 資料庫埠號:一般預設為3306
  • 登入名:管理員使用者為root
  • 登入密碼:與使用者對應的密碼
  • 資料庫名:你需要操作的資料庫名稱

具體的定義為:

		//定義連線地址、埠號、登入使用者名稱、密碼、資料庫名
        private string server;
        private string port;
        private string user;
        private string password;
        private
string datename;

三、建構函式獲取對應引數

通過建構函式在類的例項化時獲取需要輸入的引數程式碼塊為:

 		public ConnDB(string _server,string _port,string _user,string _password,string _datename)
        {
            this.server = _server;
            this.port = _port;
            this.user = _user;
            this.password = _password;
            this
.datename = _datename; }

四、連線並開啟資料庫

首先需要連線資料庫,使用MySqlConnection()可以實現對於資料庫的連線,其引數為連線之前定義的變數的字串

使用string.Format()方法可以這些變數組成字串:

		private MySqlConnection conn;
 		public MySqlConnection openDate()
        {
            try
            {
                string connStr = string.Format("server={0};port={1};user={2};password={3}; database={4};", server, port, user, password, datename);
                //連線資料庫
                conn = new MySqlConnection(connStr);
                //開啟
                conn.Open();
            }
            catch (Exception e)
            {
                Console.WriteLine("連線資料庫錯誤,原因為:" + e.ToString());
            }
            return conn;            
        }

五,關閉資料庫連線

定義一個函式來實現資料庫的關閉功能:

public void closeDB(MySqlConnection conn)
        {
            //關閉資料庫
            conn.Close();
        }

六、通過查詢案例呼叫指令碼

1,首先例項化該類,並通過類中的openDate()建立連線

2,然後使用MySqlCommand()方法來執行sql語句,完成查詢

3,通過MySqlDataReader()對查詢的結果進行資料處理

4,通過一定方式輸出資料

	 	static void Main(string[] args)
        {
            //測試資料庫
            ConnDB connDB = new ConnDB("localhost", "3306","root","***","**");
            MySqlConnection conn= connDB.openDate();
            string sqlStr = "select * from users";
            //執行sql語句,並返回結果
            MySqlCommand mycmd = new MySqlCommand(sqlStr,conn);
            //從返回結果中提取資料
            MySqlDataReader re = mycmd.ExecuteReader();
            if (re.HasRows)
            {
                while (re.Read())
                {
                    //讀取第二列資料
                    Console.WriteLine(re[1]);
                }
            }
            connDB.closeDB();
        }

總結:

貼上資料庫連線類完整原始碼:

using System;
using System.Collections.Generic;
using System.Text;
using MySql.Data.MySqlClient;

namespace ServerDemo
{
    class ConnDB
    {
        //定義連線地址、埠號、登入使用者名稱、密碼、資料庫名
        private string server;
        private string port;
        private string user;
        private string password;
        private string datename;

        private MySqlConnection conn;
        //建構函式接收引數
        public ConnDB(string _server,string _port,string _user,string _password,string _datename)
        {
            this.server = _server;
            this.port = _port;
            this.user = _user;
            this.password = _password;
            this.datename = _datename;
        } 
       // 
       /// <summary>
       ///  連線開啟資料庫
       /// </summary>
        public MySqlConnection openDate()
        {
            try
            {
                string connStr = string.Format("server={0};port={1};user={2};password={3}; database={4};", server, port, user, password, datename);
                //連線資料庫
                conn = new MySqlConnection(connStr);
                //開啟
                conn.Open();
            }
            catch (Exception e)
            {
                Console.WriteLine("連線資料庫錯誤,原因為:" + e.ToString());
            }
            return conn;            
        }
        public void closeDB()
        {
            //關閉資料庫
            conn.Close();
        }
    }
}

測試程式碼:

using System;
using MySql.Data.MySqlClient;

namespace ServerDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            //測試資料庫
            ConnDB connDB = new ConnDB("localhost", "3306","root","****","***");
            MySqlConnection conn= connDB.openDate();
            string sqlStr = "select * from users";
            //執行sql語句,並返回結果
            MySqlCommand mycmd = new MySqlCommand(sqlStr,conn);
            //從返回結果中提取資料
            MySqlDataReader re = mycmd.ExecuteReader();
            if (re.HasRows)
            {
                while (re.Read())
                {
                    //讀取三列資料
                    Console.WriteLine(re[1]);
                }
            }
            

            connDB.closeDB();
        }
    }
}