如何在 ASP.NET Core 中使用 SqlClient?

     2023-04-01     37

关键词:

【中文标题】如何在 ASP.NET Core 中使用 SqlClient?【英文标题】:How to use SqlClient in ASP.NET Core? 【发布时间】:2016-02-16 22:45:25 【问题描述】:

我正在尝试在 ASP.net Core 中使用 SQLClient 库,但似乎无法正常工作。我在网上找到了这篇文章,建议如何设置,但它对我不起作用:http://blog.developers.ba/using-classic-ado-net-in-asp-net-vnext/

我有一个简单的控制台应用程序包。我的 project.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();
        
    

但是得到以下错误:

还有其他人解决这个问题吗?

【问题讨论】:

我在您的任何依赖项中都没有看到对 System.Runtime 的引用。你试过添加一个吗? 你也没有在你的 sql 中执行UPDATE, INSERT or DELETE 命令,那么为什么你使用command.ExecuteNonQuery(); 查找使用Fill() 方法从数据库中返回数据,或者如果只返回一个 ExecuteScalar 方法单行。您不仅需要添加对using section in the .cs file class header 的引用,还需要手动将它们添加到项目中的reference 节点 您的错误表明您没有为 DNX 4.5.1 添加正确的参考。您正在同时构建两种项目类型。如果您不关心 DNX.4.5.1,请从您的配置中删除它,它应该会构建。 伙计们——非常感谢你们!删除了 DNX 4.5.1 部分,并将 System.Runtime 的依赖项添加到设置中,它运行良好(在 Visual Studio 重新启动后一切正常!)。再次感谢!!! 【参考方案1】:

我想你可能错过了教程中的这一部分:

您需要的不是引用 System.Data 和 System.Data.SqlClient 从 Nuget 抓取:

System.Data.Common 和 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"
       

尝试通过 Nuget 获取 System.Data.Common 和 System.Data.SqlClient,看看这是否会为您添加上述依赖项,但简而言之,您缺少 System.Runtime。

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

【讨论】:

我只需要通过Nuget 添加System.Data.SqlClient,它就可以在.NET Core 1.1 中与Dapper 一起使用。 我刚刚通过 Nuget 添加了 system.data.sqlclient 并且可以正常工作 这似乎已在 .NET Core 2.0 中修复。至少对我来说。 我使用界面而不是编辑配置文件:右键单击解决方案资源管理器中的依赖项,NuGet...。 我在使用 Nuget 或 dotnet add 包添加此包时遇到问题。一个解决方案是将依赖项直接放入项目文件并执行恢复 - dotnet restore。 Nuget.config 文件应在 packageSources 部分中包含 nuget.org。【参考方案2】:

对于 Dot Net Core 3,应使用 Microsoft.Data.SqlClient

【讨论】:

这条评论对于从 .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 吗? @SteveSmith 你可以查看链接中的文章。【参考方案3】:

试试这个 打开你的 projectname.csproj 文件 它对我有用。

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

你需要在里面添加这个引用“ItemGroup”标签。

【讨论】:

如何使用 EF Core 在 ASP.NET Core 中取消应用迁移

】如何使用EFCore在ASP.NETCore中取消应用迁移【英文标题】:HowtounapplyamigrationinASP.NETCorewithEFCore【发布时间】:2016-11-0615:25:03【问题描述】:当我在VS2015中使用EFCore的ASP.NETCore项目运行PM&gt;Remove-Migration-contextBloggingContext时,我收... 查看详情

如何在 ASP.​NET Core 中使用 jquery

】如何在ASP.​NETCore中使用jquery【英文标题】:HowtousejqueryinASP.​NETCore【发布时间】:2016-10-2118:54:18【问题描述】:我创建了一个ASP.NET核心模板并编写了一个jquery脚本。当我查看页面时,我看到jquery已加载到页面中,但脚本没有... 查看详情

如何在 ASP.NET Core 中使用 jQuery 库?

】如何在ASP.NETCore中使用jQuery库?【英文标题】:HowdoIuseajQuerylibaryinASP.NETCore?【发布时间】:2019-07-2601:13:51【问题描述】:我正在使用ASP.NETCore2.2开发一个网站,主要使用剃须刀页面。我正在尝试制作一个树表,并找到了一个非... 查看详情

如何在 ASP.NET Core 3.1 中使用 Java?

】如何在ASP.NETCore3.1中使用Java?【英文标题】:HowtouseJavainASP.NETCore3.1?【发布时间】:2022-01-0917:41:56【问题描述】:我正在使用ASP.NET构建一个RESTAPI,理想情况下它应该能够使用Java代码。我已经设法在一个简单的控制台应用程序... 查看详情

如何在 ASP.NET Core 中使用 npm

】如何在ASP.NETCore中使用npm【英文标题】:HowtousenpmwithASP.NETCore【发布时间】:2016-10-2211:26:20【问题描述】:我正在使用npm来管理我的ASP.NETCore应用程序所需的jQuery、Bootstrap、FontAwesome和类似的客户端库。对我有用的方法首先是在... 查看详情

如何在 asp.net core 2.1 中使用 net.tcp 服务

】如何在asp.netcore2.1中使用net.tcp服务【英文标题】:HowdoIconsumeanet.tcpserviceinasp.netcore2.1【发布时间】:2019-04-0212:26:44【问题描述】:我正在构建一个asp.netcore2.1Web应用程序,我需要调用一个旧的net.tcp端点来获取有关预订的详细信... 查看详情

我们如何在 ASP.Net Core 中使用 HttpClient?

】我们如何在ASP.NetCore中使用HttpClient?【英文标题】:HowcanweuseHttpClientinASP.NetCore?【发布时间】:2019-09-1422:32:01【问题描述】:我正在编写ASP.NetMVCCore2.2Web应用程序。我需要使用HTTP或HTTPS从另一个Web服务器获取数据。我该怎么做... 查看详情

如何在 ASP.NET Core 中使用 Bootstrap 4

】如何在ASP.NETCore中使用Bootstrap4【英文标题】:HowtouseBootstrap4inASP.NETCore【发布时间】:2018-07-0622:52:03【问题描述】:我想用NuGet更新ASP.NETCore中的Bootstrap。我用这个:Install-Packagebootstrap-Version4.0.0它确实添加了依赖项,但我现在如... 查看详情

如何在 ASP.NET Core 中使用 ILogger 进行单元测试

】如何在ASP.NETCore中使用ILogger进行单元测试【英文标题】:HowtounittestwithILoggerinASP.NETCore【发布时间】:2017-09-1110:54:52【问题描述】:这是我的控制器:publicclassBlogController:ControllerprivateIDAO<Blog>_blogDAO;privatereadonlyILogger<BlogCon... 查看详情

如何使用asp.net core在mysql中选择指定的行

】如何使用asp.netcore在mysql中选择指定的行【英文标题】:howtoselectspecifiedrowinmysqlwithasp.netcore【发布时间】:2021-11-0918:16:56【问题描述】:我想在表格中选择带有id的行。我怎样才能用asp.net核心做到这一点?谁能帮帮我?我的代... 查看详情

如何在 asp.net core 中使用 websockets

】如何在asp.netcore中使用websockets【英文标题】:Howtousewebsocketsinasp.netcore【发布时间】:2020-10-2615:01:05【问题描述】:我正在尝试开发一个游戏,我将记分牌存储在一个文本文件中,该文件存储在服务器上(当前位于本地主机上... 查看详情

如何在 Asp.net Core Web Api 中默认使用 Newtonsoft.Json?

】如何在Asp.netCoreWebApi中默认使用Newtonsoft.Json?【英文标题】:HowtouseNewtonsoft.JsonasdefaultinAsp.netCoreWebApi?【发布时间】:2017-07-0613:25:44【问题描述】:我是ASP.NetWebApiCore的新手。在过去的几年里,我一直在使用ASP.NetMVC,我总是写一... 查看详情

如何在 ASP.net razor 网页中使用“Using”语句?

】如何在ASP.netrazor网页中使用“Using”语句?【英文标题】:Howtousethe"Using"statementinASP.netrazorwebpages?【发布时间】:2016-06-0203:53:48【问题描述】:所以我需要添加一个“使用”语句:usingSystem.Data.SqlClient在我的网页中,所... 查看详情

如何在 ASP.NET Core 2.2 中使用 IValidateOptions 验证配置设置?

】如何在ASP.NETCore2.2中使用IValidateOptions验证配置设置?【英文标题】:HowtovalidateconfigurationsettingsusingIValidateOptionsinASP.NETCore2.2?【发布时间】:2019-11-2919:43:20【问题描述】:Microsoft的ASP.NETCore文档brieflymentions可以实现IValidateOptions&am... 查看详情

如何在 ASP.Net Core MVC 中使用 HTML 链接?

】如何在ASP.NetCoreMVC中使用HTML链接?【英文标题】:HowtouseHTMLlinksinASP.NetCoreMVC?【发布时间】:2016-07-0618:24:25【问题描述】:我目前正在尝试在ASP.NETCoreMVC中创建一个网站。在我的布局页面中,我正在制作一个导航栏来访问可以通... 查看详情

如何在 ASP.NET Core 中基于 appsettings 有条件地使用授权

】如何在ASP.NETCore中基于appsettings有条件地使用授权【英文标题】:HowtoconditionallyuseAuthorizationbasedonappsettingsinASP.NETCore【发布时间】:2021-09-1912:14:20【问题描述】:我有一个ASP.NETCore3.1WebApi,我在其中使用基于OAuth的身份验证和授... 查看详情

如何在 ASP.NET Core Web API 中使用 MassTransit 事件总线?

】如何在ASP.NETCoreWebAPI中使用MassTransit事件总线?【英文标题】:HowtouseMassTransitEventBusinaASP.NETCoreWebAPI?【发布时间】:2018-12-2223:35:56【问题描述】:按照https://masstransit-project.com/usage/configuration.html的指令配置MassTransit后你如何在中... 查看详情

如何在 ASP.NET Core MVC 中使用 ADO.NET 向存储过程添加参数?

】如何在ASP.NETCoreMVC中使用ADO.NET向存储过程添加参数?【英文标题】:HowcanIaddparameterstoastoredprocedureusingADO.NETinASP.NETCoreMVC?【发布时间】:2021-05-0317:52:00【问题描述】:我想在ASP.NETCoreMVC中执行具有ADO.NET输出参数的存储过程。但... 查看详情