C# 如何在ASP.NET核心中使用SqlClient?
我试图在ASP.net核心中使用SQLClient库,但似乎无法使其正常工作。我在网上找到了这篇建议如何设置的文章,但它不适合我: 我有一个简单的控制台应用程序包。myproject.json如下所示:C# 如何在ASP.NET核心中使用SqlClient?,c#,asp.net-mvc,asp.net-core,sqlclient,.net-core,C#,Asp.net Mvc,Asp.net Core,Sqlclient,.net Core,我试图在ASP.net核心中使用SQLClient库,但似乎无法使其正常工作。我在网上找到了这篇建议如何设置的文章,但它不适合我: 我有一个简单的控制台应用程序包。myproject.json如下所示: { "version": "1.0.0-*", "description": "DBTest Console Application", "authors": [ "" ], "tags": [ "" ], "projectUrl": "", "licenseUrl":
{
"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();
}
}
}
但会出现以下错误:
还有其他人能做到这一点吗?我想你可能错过了教程中的这一部分: 而不是引用所需的System.Data和System.Data.SqlClient 要从Nuget获取: System.Data.Common和System.Data.SqlClient 目前,这会在project.json->aspnetcore50中创建依赖项 这两个库的第节
“aspnetcore50”:{
“依赖项”:{
“系统运行时”:“4.0.20-beta-22523”,
“系统数据通用”:“4.0.0.0-beta-22605”,
“System.Data.SqlClient”:“4.0.0.0-beta-22605”
}
}
尝试通过Nuget获取System.Data.Common和System.Data.SqlClient,看看这是否为您添加了上述依赖项,但简而言之,您缺少System.Runtime。
编辑:根据莫扎特的回答,如果您使用的是.NET Core 3+,请参考
Microsoft.Data.SqlClient
。试试这个打开您的projectname.csproj文件
这是我的工作
<PackageReference Include="System.Data.SqlClient" Version="4.6.0" />
您需要在内部添加此引用“ItemGroup”标记 对于Dot Net Core 3,应该使用。我在您的任何依赖项中都没有看到对System.Runtime的引用。你试过添加一个吗?而且你没有在sql中执行
UPDATE、INSERT或DELETE
命令,那么为什么要使用command.ExecuteNonQuery()代码>使用Fill()
方法从数据库返回数据进行查找,如果只返回一行,则使用ExecuteScalar方法进行查找。您不仅需要将引用添加到.cs文件类标题中的使用部分
,还需要手动将它们添加到项目中的引用
节点。错误表明您没有为DNX 4.5.1添加正确的引用。您同时为两种项目类型进行构建。如果你不关心DNX.4.5.1,那么从你的配置中删除它,它应该会生成。伙计们,非常感谢大家!删除了DNX 4.5.1节,并将System.Runtime的依赖项添加到设置中,它工作得非常好(一切都是在visual studio重新启动之后!)。再次感谢!!!我只需要通过Nuget添加System.Data.SqlClient
,它在.NET Core 1.1
中与Dapper
一起工作。我刚刚通过Nuget添加了System.Data.SqlClient,它可以工作这似乎在.NET Core 2.0
中得到了修复。至少对我来说。我使用界面而不是编辑配置文件:右键单击解决方案资源管理器中的依赖项,NuGet。我在使用Nuget或dotnet add软件包添加此软件包时遇到问题。一种解决方案是将依赖关系直接放到项目文件中,并执行restore-dotnet restore。Nuget.config文件应在packageSources部分包含Nuget.org。此注释对于从.NET Core 2.2迁移到.NET Core 3.0的任何人来说都是一个救生圈。替换从System.Data.SqlClient到Microsoft.Data.SqlClient的所有引用。@mozart,.Net Core 2.2可以使用Microsoft.Data.SqlClient吗?或者Microsoft.Data.SqlClient仅用于.net Core 3?@Daleman我在移动到.net Core 3时解决了这个问题,所以我没有在2.2中尝试过,我认为它不起作用“每个参数都有一个数据类型,对吗?”,但您可以试一试。@Mozar,您的数据库连接仍然使用stringbuilder吗?@Daleman如果您指的是SqlConnectionStringBuilder,是的,这在这个金块中是可用的。