Unity網路程式設計二 : 伺服器端連線資料庫(C#連線MySQL)
阿新 • • 發佈:2021-01-23
技術標籤: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();
}
}
}