2016-02-16 1 views
24

J'essaie d'utiliser la bibliothèque SQLClient dans ASP.net Core mais je n'arrive pas à le faire fonctionner. J'ai trouvé cet article en ligne en vous conseillant comment installer mais cela ne fonctionne pas pour moi: http://blog.developers.ba/using-classic-ado-net-in-asp-net-vnext/Comment utiliser SqlClient dans ASP.NET Core?

J'ai un paquet d'application de console simple. Mon project.json ressemble à ceci:

{ 
    "version": "1.0.0-*", 
    "description": "DBTest Console Application", 
    "authors": [ "" ], 
    "tags": [ "" ], 
    "projectUrl": "", 
    "licenseUrl": "", 

    "compilationOptions": { 
    "emitEntryPoint": true 
    }, 

    "dependencies": { 
    "System.Data.Common": "4.0.1-beta-23516", 
    "System.Data.SqlClient" : "4.0.0-beta-23516" 
    }, 

    "commands": { 
    "DBTest": "DBTest" 
    }, 

    "frameworks": { 
    "dnx451": { }, 
    "dnxcore50": { 
     "dependencies": { 
     "Microsoft.CSharp": "4.0.1-beta-23516", 
     "System.Collections": "4.0.11-beta-23516", 
     "System.Console": "4.0.0-beta-23516", 
     "System.Linq": "4.0.1-beta-23516", 
     "System.Threading": "4.0.11-beta-23516" 
     } 
    } 
    } 
} 

Et je tente le code suivant:

using System; 
using System.Data.SqlClient; 

namespace DBTest 
{ 
    public class Program 
    { 
     public static void Main(string[] args) 
     { 
      using (SqlConnection con = new SqlConnection(ConnStr)) { 
       con.Open(); 
       try { 
        using (SqlCommand command = new SqlCommand("SELECT * FROM SAMPLETABLE", con)) { 
         command.ExecuteNonQuery(); 
        } 
       } 
       catch { 
        Console.WriteLine("Something went wrong"); 
       } 
      } 

      Console.Read(); 
     } 
    } 
} 

Mais obtenir les erreurs suivantes:

enter image description here

Quelqu'un d'autre a obtenu ce travail?

+1

Je ne vois pas de référence à System.Runtime dans l'une de vos dépendances. Avez-vous essayé d'en ajouter un? – thorkia

+1

vous ne faites pas non plus la commande UPDATE, INSERT ou DELETE dans votre sql alors pourquoi utilisez-vous 'command.ExecuteNonQuery();' recherchez en utilisant la méthode 'Fill()' pour retourner les données d'une base de données ou la méthode ExecuteScalar si vous ne renvoyez qu'une seule ligne. vous devez également ajouter des références non seulement à la section 'using dans l'en-tête de classe de fichier .cs', mais aussi les ajouter manuellement au noeud' reference' dans le projet – MethodMan

+1

Vos erreurs indiquent que vous n'avez pas ajouté les références appropriées pour DNX 4.5 .1. Vous construisez pour deux types de projets en même temps. Si vous ne vous souciez pas de DNX.4.5.1, retirez-le de votre configuration et il devrait être compilé. – mason

Répondre

50

Je pense que vous avez peut-être manqué cette partie dans le tutoriel:

Au lieu de référencer System.Data et System.Data.SqlClient vous avez besoin de saisir de Nuget:

système. Data.Common et System.Data.SqlClient.

Actuellement, cela crée une dépendance dans la section project.json -> aspnetcore50 vers ces deux bibliothèques.

"aspnetcore50": { 
     "dependencies": { 
      "System.Runtime": "4.0.20-beta-22523", 
      "System.Data.Common": "4.0.0.0-beta-22605", 
      "System.Data.SqlClient": "4.0.0.0-beta-22605" 
     } 
} 

Essayez d'obtenir System.Data.Common et System.Data.SqlClient via Nuget et voir si cela ajoute les dépendances ci-dessus pour vous, mais en quelques mots vous manquent System.Runtime.

+2

Je n'avais qu'à ajouter 'System.Data.SqlClient' via' Nuget' et cela fonctionne avec 'Dapper' dans' .NET Core 1.1'. – JedatKinports

+1

Je viens d'ajouter system.data.sqlclient via Nuget et cela fonctionne – Shahram

+0

Cela semble être corrigé dans '.NET Core 2.0'. Pour moi au moins. – JedatKinports