首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Unity3D 連接 SQL Server 資料庫完整教學

     編輯:MySQL 資料庫相關知識

適用場景

遊戲資料量大、結構複雜,需關聯查詢、事務支援,PlayerPrefs 無法勝任。

操作步驟

1. 取得 System.Data.dll

路徑:C:\Program Files\Unity\Editor\Data\Mono\lib\mono\unity\System.Data.dll(依安裝路徑調整)

DLL 位置

2. 複製到專案

放入 Assets/Plugins/ 目錄(建議建立 Plugins 資料夾管理原生 DLL)。

3. VS 編輯器添加引用

右鍵專案 → Add Reference → Browse 選取該 DLL。

添加引用1

添加引用2

4. 命名空間引入

using System;
using System.Data;
using System.Data.SqlClient;

5. 連線代碼範例

public class SqlServerManager : MonoBehaviour
{
    private SqlConnection conn;
    private SqlDataAdapter adapter;

    void Start()
    {
        // 必須啟用 SQL Server 和 Windows 混合驗證模式
        string connStr = @"server=.;database=ConnectTest;uid=sa;pwd=123456";
        conn = new SqlConnection(connStr);
        conn.Open();

        string sql = "SELECT * FROM table1";
        adapter = new SqlDataAdapter(sql, conn);
        DataSet ds = new DataSet();
        adapter.Fill(ds, "table1");

        print(ds.Tables[0].Rows[0][0]);  // 輸出第一行第一欄
    }

    void OnDestroy()
    {
        if (conn != null && conn.State == ConnectionState.Open)
            conn.Close();
    }
}

6. 執行結果

Console 輸出成功

進階建議

  • 連線字串放 Resources/Config.txt 或 ScriptableObject,不硬編碼
  • 使用連線池:Pooling=true;Max Pool Size=100
  • 所有查詢改用 SqlCommand + Parameters 防注入
  • 異步操作:await conn.OpenAsync()、await cmd.ExecuteReaderAsync() 避免阻塞主執行緒
  • 考慮 ORM:Dapper/EF Core 提升開發效率
  • 建置設定:Player Settings → Api Compatibility Level → .NET 4.x / .NET Standard 2.0

常見坑點

  • SQL Server 需啟用 TCP/IP 協定(SQL Server Configuration Manager)
  • 防火牆開放 1433 埠
  • SA 帳號預設停用,建議建立專用遊戲帳號
  • IL2CPP 輸出時需確保 System.Data.dll 相容
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved