Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在ASP.NET核心中使用SqlClient?_C#_Asp.net Mvc_Asp.net Core_Sqlclient_.net Core - Fatal编程技术网

C# 如何在ASP.NET核心中使用SqlClient?

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

我试图在ASP.net核心中使用SQLClient库,但似乎无法使其正常工作。我在网上找到了这篇建议如何设置的文章,但它不适合我:

我有一个简单的控制台应用程序包。myproject.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.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,是的,这在这个金块中是可用的。