2016-02-16 33 views
24

Tôi đang cố gắng sử dụng thư viện SQLClient trong ASP.net Core nhưng dường như không thể làm cho nó hoạt động. Tôi tìm thấy bài viết này trực tuyến tư vấn cách thiết lập nhưng không hoạt động cho tôi: http://blog.developers.ba/using-classic-ado-net-in-asp-net-vnext/Làm thế nào để sử dụng SqlClient trong ASP.NET Core?

Tôi có một gói ứng dụng giao diện điều khiển đơn giản. project.json của tôi trông như thế này:

{ 
    "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" 
     } 
    } 
    } 
} 

Và tôi thử đoạn mã sau:

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(); 
     } 
    } 
} 

Nhưng có được các lỗi sau đây:

enter image description here

Bất cứ ai khác đã làm việc này?

+1

Tôi không thấy tham chiếu đến System.Runtime trong bất kỳ phụ thuộc nào của bạn. Bạn đã thử thêm một cái chưa? – thorkia

+1

bạn cũng không làm lệnh 'UPDATE, INSERT hoặc DELETE' trong sql của bạn vậy tại sao bạn sử dụng' command.ExecuteNonQuery(); 'tra cứu bằng phương thức' Fill() 'để trả về dữ liệu từ cơ sở dữ liệu hoặc phương thức ExecuteScalar nếu chỉ trả về một hàng duy nhất. bạn cũng cần thêm tham chiếu không chỉ vào phần 'sử dụng trong tiêu đề lớp tệp .cs mà còn thêm chúng vào nút' tham chiếu' theo cách thủ công trong dự án – MethodMan

+1

Lỗi của bạn cho biết bạn chưa thêm tài liệu tham khảo thích hợp cho DNX 4.5 .1. Bạn đang xây dựng cho hai loại dự án cùng một lúc. Nếu bạn không quan tâm đến DNX.4.5.1, hãy xóa nó khỏi cấu hình của bạn và nó sẽ được xây dựng. – mason

Trả lời

50

Tôi nghĩ bạn có thể đã bỏ lỡ phần này trong hướng dẫn:

Thay vì tham chiếu System.Data và System.Data.SqlClient bạn cần để lấy từ NuGet:

System. Data.Common và System.Data.SqlClient.

Hiện tại, điều này tạo phụ thuộc trong project.json -> aspnetcore50 phần cho hai thư viện này.

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

Hãy thử lấy System.Data.Common và System.Data.SqlClient qua NuGet và xem nếu điều này cho biết thêm sự phụ thuộc trên cho bạn, nhưng trong một nutshell bạn đang thiếu System.Runtime.

+2

Tôi chỉ phải thêm 'System.Data.SqlClient' qua' Nuget' và nó hoạt động với 'Dapper' trong' .NET Core 1.1'. – JedatKinports

+1

Tôi vừa thêm system.data.sqlclient qua Nuget và nó hoạt động – Shahram

+0

Điều này dường như được sửa trong '.NET Core 2.0'. Cho tôi ít nhất. – JedatKinports

Các vấn đề liên quan