Próbuję użyć biblioteki SQLClient w ASP.net Core, ale wydaje się, że nie działa. Znalazłem ten artykuł w Internecie, który zawiera porady dotyczące konfiguracji, ale nie działa dla mnie: http://blog.developers.ba/using-classic-ado-net-in-asp-net-vnext/
Mam prosty pakiet aplikacji konsoli. Mój project.json wygląda następująco:
{
"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"
}
}
}
}
I próbuję następującego kodu:
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();
}
}
}
Ale uzyskaj następujące błędy:
Czy ktoś jeszcze sprawił, że to działa?
c#
asp.net-mvc
asp.net-core
sqlclient
.net-core
Rob McCabe
źródło
źródło
UPDATE, INSERT or DELETE
polecenia w swoim sql, więc dlaczego używaszcommand.ExecuteNonQuery();
wyszukiwania przy użyciuFill()
metody zwracania danych z bazy danych lub metody ExecuteScalar, jeśli zwracasz tylko jeden wiersz. musisz również dodać odniesienia nie tylko do,using section in the .cs file class header
ale także ręcznie dodać je doreference
węzła w projekcieOdpowiedzi:
Myślę, że mogłeś przegapić tę część w samouczku:
Spróbuj pobrać System.Data.Common i System.Data.SqlClient za pośrednictwem Nuget i zobacz, czy to dodaje powyższe zależności, ale w skrócie brakuje Ci System.Runtime.
Edycja: zgodnie z odpowiedzią Mozarts, jeśli używasz .NET Core 3+,
Microsoft.Data.SqlClient
zamiast tego odwołaj się.źródło
System.Data.SqlClient
przezNuget
i działa zDapper
w.NET Core 1.1
..NET Core 2.0
. Przynajmniej dla mnie.W przypadku Dot Net Core 3 należy użyć Microsoft.Data.SqlClient .
źródło
Wypróbuj ten Otwórz plik nazwa_projektu.csproj dla mnie.
<PackageReference Include="System.Data.SqlClient" Version="4.6.0" />
Musisz dodać ten znacznik odniesienia „ ItemGroup ” w środku.
źródło