Unity运行C#数据库连接脚本报错:找不到SqlConnection类型
解决Unity中System.Data.SqlClient找不到SqlConnection的问题
兄弟,我之前在Unity里连SQL Server也踩过这个一模一样的坑——VS里代码全绿没报错,结果Unity一运行就跳CS1069,给你几个亲测有效的解决方向:
1. 确认DLL的位置和平台兼容性
- 首先,把
System.Data.dll和System.Data.SqlClient.dll(如果是单独的文件)放到Assets/Plugins文件夹下,Unity只会优先加载Plugins里的第三方库,随便扔Assets根目录可能被忽略。 - 选中这些DLL,在Inspector面板里检查平台设置:把“Platform Settings”设为你当前的目标平台(比如Windows),勾上“Include Platform”,确保Unity运行和构建时会包含它们。
- 注意DLL版本:必须用和Unity兼容的.NET Framework版本(比如4.7.2),别用.NET Core/.NET 5+的版本,Unity的Mono runtime对新框架的支持不全。
2. 调整Unity的API兼容等级
打开Edit > Project Settings > Player > Other Settings > Configuration,把API Compatibility Level改成.NET Framework(别选.NET Standard)。因为System.Data.SqlClient是.NET Framework的专属组件,.NET Standard的子集里没有完整实现,这是最常见的触发原因。
3. 清理缓存并重新生成项目
有时候Unity的缓存会抽风,导致DLL识别异常:
- 关掉Unity和Visual Studio
- 删除项目根目录下的
Library文件夹(放心,Unity重启后会自动重建) - 重启Unity,然后点击
Assets > Open C# Project重新生成VS项目文件
4. 尝试完整命名空间实例化(临时排查)
虽然你加了using System.Data.SqlClient;,但可以试试直接写完整命名空间来排除命名冲突:
System.Data.SqlClient.SqlConnection dbConnection = new System.Data.SqlClient.SqlConnection(connectionstring);
5. 考虑改用新的SqlClient包
旧的System.Data.SqlClient已经被官方弃用了,如果你用的是Unity 2020+版本,可以试试Microsoft.Data.SqlClient(官方替代包)。你可以通过Unity Package Manager安装NuGet包,或者手动下载兼容的DLL放到Plugins文件夹里。
提问者提供的代码:
using UnityEngine; using System.Data.SqlClient; using System; private void Start() { Debug.Log("Connecting to database..."); string connectionstring = "Server=MYSERVER;Database=MYDATABASE;User Id=MYUSER;Password = MYPASSWORD; "; SqlConnection dbConnection = new SqlConnection(connectionstring); try { dbConnection.Open(); Debug.Log("Connected to database."); } catch (Exception _exception) { Debug.LogWarning(_exception.ToString()); } // conn.Close(); }
内容的提问来源于stack exchange,提问作者Mario Segalla
相关产品推荐
相关产品推荐

