2016-02-16 30 views
24

Sto cercando di utilizzare la libreria SQLClient nel nucleo ASP.net ma non riesco a farlo funzionare. Ho trovato questo articolo in linea che consiglia come configurare ma non funziona per me: http://blog.developers.ba/using-classic-ado-net-in-asp-net-vnext/Come utilizzare SqlClient in ASP.NET Core?

Ho un semplice pacchetto di applicazioni per console. Il mio project.json assomiglia a questo:

{ 
    "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" 
     } 
    } 
    } 
} 

E cerco il seguente codice:

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(); 
     } 
    } 
} 

Ma ottenere i seguenti errori:

enter image description here

Chiunque altro ottenuto questo lavoro?

+1

Non vedo un riferimento a System.Runtime in nessuna delle vostre dipendenze. Hai provato ad aggiungerne uno? – thorkia

+1

anche tu non stai facendo il comando 'UPDATE, INSERT o DELETE' nel tuo sql quindi perché stai usando' command.ExecuteNonQuery(); 'cerca usando il metodo' Fill() 'per restituire i dati da un database o il metodo ExecuteScalar se restituisce solo una singola riga. devi aggiungere anche riferimenti non solo alla sezione 'using nell'intestazione della classe file .cs ', ma anche aggiungerli manualmente al nodo' reference' nel progetto – MethodMan

+1

I tuoi errori indicano che non hai aggiunto i riferimenti appropriati per DNX 4.5 .1. Stai costruendo per due tipi di progetto contemporaneamente. Se non ti interessa DNX.4.5.1, rimuovilo dalla tua configurazione e dovrebbe crearlo. – mason

risposta

50

penso che potreste aver perso questa parte nel tutorial:

Invece di riferimento System.Data e System.Data.SqlClient è necessario per afferrare da Nuget:

sistema. Data.Common e System.Data.SqlClient.

Attualmente questo crea dipendenza in project.json -> aspnetcore50 sezione a queste due librerie.

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

provare a ottenere System.Data.Common e System.Data.SqlClient via Nuget e vedere se questo aggiunge le dipendenze di cui sopra per voi, ma in poche parole vi manca System.Runtime.

+2

Ho solo dovuto aggiungere 'System.Data.SqlClient' tramite' Nuget' e funziona con 'Dapper' in' .NET Core 1.1'. – JedatKinports

+1

Ho appena aggiunto system.data.sqlclient via Nuget e funziona – Shahram

+0

Questo sembra essere corretto in '.NET Core 2.0'. Per me almeno. – JedatKinports

Problemi correlati