如何在 ASP.NET 内核中使用 SqlClient?

我试图在 ASP.net 核心中使用 SQLClient 库,但似乎无法让它工作。我发现这篇文章在线建议如何设置,但它不适合我: http://blog.developers.ba/using-classic-ado-net-in-asp-net-vnext/

我有一个简单的控制台应用,我的 json 项目是这样的:

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

我尝试下面的代码:

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

但是得到以下错误:

enter image description here

还有人能修好吗?

158562 次浏览

I think you may have missed this part in the tutorial:

您需要引用 System.Data 和 System.Data.SqlClient,而不是引用 System.Data 和 System.Data.SqlClient 从 Nuget 抓起:

System.Data.Common and System.Data.SqlClient.

目前,这在 project.json-> aspnetcore50中创建了依赖项 这两个图书馆。

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

尝试获取系统。百科。共同制度。百科。SqlClient途经 Nuget,并查看这是否为您添加了上述依赖项,但简而言之,您缺少 系统运行时。

编辑: 根据莫扎特的回答,如果您使用的是.NET Core 3 + ,请参考 Microsoft.Data.SqlClient

试试这个,打开你的 projectname.csproj文件 对我来说很有用。

<PackageReference Include="System.Data.SqlClient" Version="4.6.0" />

您需要在内部添加这个 Reference“ 项目组”标记。

For Dot Net Core 3, < strong > Microsoft. Data. SqlClient should be used.