这段代码有什么问题。为什么我不能使用 SqlConnection?

问题描述 投票:0回答:11

我是 100% 的 SQl 新手,想用数据库制作一个 ConsoleApp。我阅读了一些相关内容并尝试过。当我需要创建 SqlConnection 时,我的 VS 2019 Preview 向我展示了这个

严重性代码描述项目文件行抑制状态 错误 CS1069 在命名空间“System.Data.SqlClient”中找不到类型名称“SqlConnection”。 此类型已转发到程序集 'System.Data.SqlClient, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 考虑添加对该程序集的引用。 ConsoleApp1 C:\Users\User\Desktop\Bald Code\ConsoleApp1\ConsoleApp1\Program.cs 12 主动

我不明白为什么它不起作用

这是我的代码

using System;

using System.Data;

using System.Data.SqlClient;

namespace ConsoleApp1

{

    class Program
    {
        static void Main(string[] args)
        {
            string connectionString;
            SqlConnection cnn;
        }
    }
}
c# sql sqlclient
11个回答
40
投票

如果您刚刚将 EntityFrameworkCore 从版本 2.x 更新到 3.x,并且您遇到了这个问题,请将您的

using
语句更改为 Microsoft.Data.SqlClient 而不是 系统.Data.SqlClient.

如果您正在使用 EntityFrameworkCore.SqlServer 它已经将其作为依赖项,因此您不需要显式安装它。

此 Microsoft 博客 解释了更改。


26
投票

很可能 System.Data.SqlClient.DLL 不在 Bin 文件夹中,并且您没有在项目中设置对 DLL 的引用。安装 visual studio 时,您错过了数据库选择。现在您只需手动添加名为“System.Data.SqlClient”的引用。

1.右键单击您的项目名称并选择 nuget 包选项。

2.搜索“System.Data.SqlClient”并安装它。

希望这是修复你的错误


25
投票

假设您使用的是 .NET Core - 只需添加 NuGet 包:

System.Data.SqlClient

您的 .csproj 可能类似于:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.1</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="System.Data.SqlClient" Version="4.5.1" />
  </ItemGroup>
</Project>

8
投票

在 VS Code 中解决这个问题的具体方法是

  1. 转到终端 - >新终端打开终端

  2. 运行 dotnet 添加包 System.Data.SqlClient

  3. 运行 dotnet restore

最后一条命令可能不是必需的,但这样做对我来说很管用。控制台应用程序模板似乎没有为引用 SqlClient 做好准备。

更新

我认为推进项目应该使用 Microsoft.Data.SqlClient 而不是 System.Data.SqlClient:https://devblogs.microsoft.com/dotnet/introducing-the-new-microsoftdatasqlclient/.


2
投票

正如@Mmm 在评论中提到的,如果您正在使用 .NET Core 并且已经安装了 System.Data.SqlClient 包,关闭并重新打开项目也为我解决了这个问题。


0
投票

我今天遇到了那个错误,VS CODE 无法识别 System.Data.SqlClient;,这就是为什么你不能调用变量的原因......

我是怎么解决的??

我安装了:

  • SQL 服务器紧凑型工具箱
  • Nuget 包版本更新程序

关闭 visual studio/再次打开它,您的程序应该会摇摆和弹出!


0
投票

[![“管理解决方案的 Nuget 包”]

它解决了我的问题。 [1]: https://i.stack.imgur.com/hpk2e.png

我刚刚从“Manage Nuget Package for Solution”安装了 nuget 包。以前我通过命令使用过但是没有用所以我使用 UI 来安装这个包。


0
投票

NuGet 包

Install-Package System.Data.SqlClient

解决我的问题


0
投票

对我来说,System.Data.SqlClient 已经安装好了。我必须做的是,我去了 Nuget 包管理器并将版本从 4.8.3 降级到 4.8.2 并且它起作用了。


0
投票

如果以前的解决方案都不适合您,请尝试将项目文件中的

System.Data.SqlClient
版本更改为
0.0.0
4.1.0
,因为这是使用此版本的错误信息。

我拥有的图书馆的当前版本是

4.8.5
。我尝试了上述所有解决方案,但除了这个之外,没有一个对我有用。


-1
投票

很简单

转到解决方案资源管理器 > 右键单击并单击管理 NuGet 程序包 > 并安装 System.data.SqlClient 4.5.1。或以后。

Click here to screenshot

© www.soinside.com 2019 - 2024. All rights reserved.