错误CS1069:在命名空间“System.Data.SqlClient”中找不到类型名称“SqlConnection”

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并重新启动(有时它只是卡住了)

或者

  1. 在解决方案资源管理器中,在要使用这行代码的项目中
  2. 右键单击“引用”,选择“添加引用...”
  3. 然后选择左侧的Assemblies和其下的Framework。
  4. 选择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)