Mar*_*lla 7 c# sql-server unity-game-engine
我在 C# 中有这段代码,我尝试连接到我的数据库,当我尝试在 Unity 中运行该脚本时,它说我缺少名称空间“System.Data.SqlClient”,即使我在代码中有引用并且Assets 文件夹内的 DLL
仅当我尝试在 Unity 上运行代码时,我的 Visual Studio 才不会在代码上显示任何错误。
这是代码:
编辑:添加了 using 语句
using UnityEngine;
using System.Data.SqlClient;
using System;
private void Start()
{
Debug.Log("Connecting to database...");
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();
}
Run Code Online (Sandbox Code Playgroud)
如果有人可以提供帮助,我将不胜感激。谢谢。
小智 14
出现此错误的原因是.NET Core项目默认不会像.NET Framework那样引用命名空间System.Data.SqlClient,因此,在.NET Core中,您必须手动将包添加到项目中。
\n解决方案是将 NuGet 中的新 System.Data.SqlClient 包安装并使用到您的项目或解决方案。请按照以下步骤安装该软件包。
\n在 VS 的解决方案面板中右键单击您的解决方案。\n从上下文菜单中,选择管理解决方案的 NuGet 包...\n在 NuGet 包管理器窗口中,选择“浏览”选项卡。\n在搜索框中键入 System。 Data.SqlClient 并按 Enter。\n查找 Microsoft 的 System.Data.SqlClient 包并选择它。\n窗口右侧将打开一个小面板,其中包含解决方案中的项目列表。仅选择您想要安装 SqlClient 包的项目。\n然后按安装按钮。等待安装完成。NuGet 将安装选定的包及其所有\xe2\x80\x99s 依赖项。\n现在返回到您的解决方案或项目并重建。您不会再次收到错误。\n https://www.mytecbits.com/microsoft/dot-net/error-sqlconnection-could-not-be-found
\n小智 0
你可以创建一个新的“干净的项目”,尝试关闭VS并重新启动(有时它只是卡住了)
或者
System.Configuration列表并单击“确定”。 <?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="ConnectionString" value="Data Source=MY-PC;Initial Catalog=DB2013;User ID=sa;Password=MYSQL123" />
</appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)
using System.Configuration;
using System.Data.SqlClient;
namespace Test
{
public partial class Form1: Form
{
SqlConnection MyConnection = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
MyConnection.Open();
}
catch (Exception)
{
throw;
}
}
}
Run Code Online (Sandbox Code Playgroud)