SqlConnection.Open() 在 .NET Core Consol 项目中挂起,但在常规的 C# 控制台项目



我的程序使用以下代码连接到 C# 控制台项目中的服务器:

public static void Main(string[] args)
{
Console.WriteLine("Hello World!");
System.Data.SqlClient.SqlConnection conn = 
new System.Data.SqlClient.SqlConnection();
string connectionString = "Data Source=IPOfServer;" +
"Initial Catalog=nameOfDatabase;"+
"User ID=USERNAME;" +
"Password=PASSWORD";
conn.ConnectionString = connectionString;
try
{
Console.WriteLine("Before Connection");
conn.Open();
Console.WriteLine("Connection Open");
conn.Close();
Console.WriteLine("Connection Closed");
}
catch (Exception ex)
{
Console.WriteLine(String.Format("Can't Connect; Error:{0}", ex.Message));
}
}

和输出:

Hello World!
Before Connection
Connection Open
Connection Closed

当我在 .NET Core 控制台项目中尝试完全相同的代码时,我的输出是:

Hello World!
Before Connection

但是程序永远不会出错或结束。它只是永远挂起。

我正在使用System.Data.CommonSystem.Data.SqlClient
的软件包 这是我尝试连接到的 MSSQL 2005 服务器。

我做错了什么/如何使用 .NET Core 控制台项目连接到我的服务器?我考虑过使用EntityFramework,但宁愿不使用它,除非这是我唯一的选择。

当我连接到较新版本的 sql 服务器时,我的程序运行,显然 Core 无法连接到 MSSQL 2005。谢谢@TcKs提供的解决方案。

尝试以下操作:

在 Visual Studio 2015 中打开现有解决方案。现在,添加新客户端 在解决方案中库 .NET Core 项目。

通过解决方案上下文菜单打开"添加新项目"屏幕>>添加新项目>>新建项目或文件>>新建>>项目。选择类库 (.NET 核心)模板通过已安装的>>模板>> Visual C#>> .NET 核心。将项目命名为"WebApplicationCore.NetCore.DataAccess"。设置 合适的位置为"C:\ASP.NET 核心\欢迎使用 .NET 核心 1.0\ ASP.NET 核心"(默认选择解决方案根目录)。点击 OK 按钮。

它将创建一个新的类库项目。

添加对 Microsoft.EntityFrameworkCore.SqlServer 的引用,使用以下之一 以下方法。

通过 NuGet 数据包管理器>>包管理器控制台>>工具打开包管理器控制台,然后运行安装命令"安装包" Microsoft.EntityFrameworkCore.SqlServer" for WebApplicationCore.NetCore.DataAccess project.

通过 WebApplicationCore.NetCore.DataAccess 打开 NuGet Manager "引用"上下文菜单>>"引用">>"管理 NuGet 包"。在 浏览选项卡搜索"Microsoft.EntityFrameworkCore.SqlServer"和 安装。

将 Class1 重命名为 BaseDataAccess,并将所需的实现添加到 连接到 SQL Server 数据库。

- 来源(尖角)

关于 StackOverflow 的类似问题

相关内容

最新更新