簡體   English   中英

SqlConnection.Open()掛在.NET Core Consol項目中,但在常規C#控制台項目中連接良好

[英]SqlConnection.Open() hangs in .NET Core Consol project, but connects fine in a regular C# console project

我的程序使用以下代碼連接到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 Console項目中嘗試完全相同的代碼時,我的輸出是:

Hello World!
Before Connection

但是程序永遠不會出錯或結束。 它只是永遠掛着。

我正在使用軟件包System.Data.CommonSystem.Data.SqlClient
這是我嘗試連接的MSSQL 2005 Server。

我在做什么錯/如何使用.NET Core Console項目連接到服務器? 我考慮使用EntityFramework ,但寧願不使用它,除非那是我唯一的選擇。

當我連接到較新版本的sql server時,我的程序運行,顯然Core無法連接到MSSQL2005 。謝謝@TcKs的解決方案。

請嘗試以下操作:

在Visual Studio 2015中打開現有的解決方案。現在,在解決方案中添加新的客戶端庫.NET Core項目。

通過解決方案上下文菜單>>添加>>新項目或文件>>新建>>項目,打開添加新項目屏幕。 通過已安裝>>模板>> Visual C#>> .NET Core,選擇類庫(.NET Core)模板。 將項目命名為“ WebApplicationCore.NetCore.DataAccess”。 將適當的位置設置為“ C:\\ ASP.NET Core \\ Welcome To .NET Core 1.0 \\ ASP.NET Core”(默認選擇為解決方案根)。 單擊確定按鈕。

它將創建一個新的類庫項目。

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

通過工具>> NuGet數據包管理器>>軟件包管理器控制台打開軟件包管理器控制台,並為WebApplicationCore.NetCore.DataAccess項目運行安裝命令“ Install-Package Microsoft.EntityFrameworkCore.SqlServer”。

通過WebApplicationCore.NetCore.DataAccess參考上下文菜單>>引用>>管理NuGet包,打開NuGet Manager。 在“瀏覽”選項卡中搜索“ Microsoft.EntityFrameworkCore.SqlServer”並安裝。

將Class1重命名為BaseDataAccess,並添加所需的實現以連接到SQL Server數據庫。

-來源(csharpcorner)

關於StackOverflow的類似問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM