12
votes

Quel est le problème avec ce code. Pourquoi ne puis-je pas utiliser SqlConnection?

Je suis 100% novice à SQl et je voulais créer une ConsoleApp avec l'utilisation de la base de données. J'en ai lu quelques-uns et j'ai essayé. Quand j'avais besoin de faire SqlConnection, mon aperçu VS 2019 m'a montré ceci

Code de gravité Description Erreur d'état de suppression de ligne de fichier de projet CS1069 Le nom de type «SqlConnection» est introuvable dans l'espace de noms «System.Data.SqlClient». Ce type a été transmis à l'assembly 'System.Data.SqlClient, Version = 0.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a' Envisagez d'ajouter une référence à cet assembly. ConsoleApp1 C: \ Users \ User \ Desktop \ Bald Code \ ConsoleApp1 \ ConsoleApp1 \ Program.cs 12 Active

je ne comprends pas pourquoi ça ne marche pas

Voici mon code

using System;

using System.Data;

using System.Data.SqlClient;

namespace ConsoleApp1

{

    class Program
    {
        static void Main(string[] args)
        {
            string connectionString;
            SqlConnection cnn;
        }
    }
}


1 commentaires

vous devez ajouter l'assembly System.Data.SqlClient dans votre référence de projet.


6 Réponses :


12
votes

En supposant que vous utilisez .NET Core, ajoutez simplement le package NuGet: System.Data.SqlClient

Votre .csproj peut ressembler à:

<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>


1 commentaires

J'ai eu un problème similaire malgré l'ajout du package de NuGet dans VS2017. J'ai dû fermer le projet et le rouvrir pour que System.Data.SqlClient soit reconnu.



2
votes

Comme @Mmm mentionné dans les commentaires si vous utilisez .NET Core et avez déjà installé le package System.Data.SqlClient, la fermeture et la réouverture du projet ont également résolu le problème pour moi.


0 commentaires

5
votes

La manière spécifique de résoudre ce problème à partir de VS Code consiste à

1) Ouvrez un terminal en allant dans Terminal -> Nouveau terminal

2) Exécutez dotnet add package System.Data.SqlClient

3) Exécutez la restauration dotnet

Cette dernière commande n'était peut-être pas nécessaire, mais cela a fonctionné pour moi. Il semble que les modèles d'application console ne sont pas préparés pour une référence à SqlClient.


0 commentaires

16
votes

Si vous venez de mettre à jour EntityFrameworkCore de la version 2.x à 3.x et que vous rencontrez ce problème, remplacez votre instruction using par Microsoft .Data.SqlClient au lieu de System .Data.SqlClient .

Si vous utilisez EntityFrameworkCore.SqlServer, il l'a déjà en tant que dépendance, vous ne devriez donc pas avoir besoin de l'installer explicitement.

Ce blog Microsoft explique le changement.


2 commentaires

Ne fonctionne pas ... Microsoft n'a pas Data.SqlClient dedans.


nuget.org/packages/Microsoft.Data.SqlClient/2.0.1



0
votes

J'ai eu cette erreur aujourd'hui et ce qui se passe, c'est que VS CODE ne reconnaît pas System.Data.SqlClient;, c'est pourquoi vous ne pouvez pas appeler la variable ...

Comment ai-je résolu le problème?

J'ai installé:

  • Boîte à outils compacte SQL Server
  • Programme de mise à jour de la version du package Nuget

Fermez le studio visuel / ouvrez-le à nouveau et votre programme devrait basculer et sauter !!


0 commentaires

0
votes

[! ["Gérer le package Nuget pour la solution"]

cela a résolu mon problème. [1]: https://i.stack.imgur.com/hpk2e.png

Je viens d'installer le package nuget du "Manage Nuget Package for Solution". Auparavant, j'avais utilisé via la commande mais cela ne fonctionnait pas, j'ai donc utilisé l'interface utilisateur pour installer ce package.


0 commentaires