У меня новая версия Visual Studio 2017 Professional. Я создаю быстрое приложение POC Console с использованием .NET 4.7.1 и не могу найти ссылку на System.Data.SqlClient.

Я проверил свою систему и обнаружил 4 версии System.Data.SqlClient.dll, но ни одна из них не верна и не будет компилироваться. Я также пытался использовать System.Data, но внутри SqlClient нет ссылки. Я вручную добавил dll / reference для System.Data, но также не решил проблему с ссылками.

Мое приложение действительно очень простое на данный момент, и оно НЕ будет компилироваться из-за этой недостающей ссылки.

Какие шаги мне нужно сделать, чтобы решить эту проблему?

using System;
using System.Data;
using System.Data.SqlClient;

namespace ConsoleApp1
{
    class Database
    {
        public void Start()
        {

            string connString = @"server=(local);initial     catalog=MyDatabase;Integrated Security=SSPI;";
            using (SqlConnection conn = new SqlConnection(connString))
            {
                conn.Open();
                using (SqlCommand cmd = new SqlCommand("SELECT TOP 10 ID, Name FROM TableA", conn))
                {
                    using (SqlDataReader reader = cmd.ExecuteReader())
                    {
                        while(reader.Read())
                        {
                            Console.WriteLine("ID: [{0}], Name: [{1}]", reader.GetValue(0), reader.GetValue(1));
                        }
                    }
                }
            }
        }
    }
}
19
Allan L 28 Фев 2018 в 20:17

4 ответа

Лучший ответ

dotnet add package System.Data.SqlClient

15
Jorge Candeias 6 Мар 2019 в 20:52

Вам просто нужно добавить опцию ссылки в обозревателе решений, и после этого, если она не работает, вам нужно изменить библиотеку классов, используя ".net framework", а не ".net standard"

4
Parag Jain 15 Авг 2018 в 14:53

В моем случае у меня была тонкая проблема, отличающаяся от других ответов. Ссылка была добавлена, но у нее был желтый треугольник, означающий, что у меня возникла проблема со ссылкой.

Я должен был удалить его из выпадающего списка ссылок

Assembly references

И переустановите пакет с

Пакет-обновление System.Data.SqlClient -Reinstall

Затем он добавил правильную ссылку обратно.

Я два дня рвал на себе волосы, потому что знал, что у меня есть эталон, но никогда не замечал, что у него был желтый треугольник.

Я думал, что это только проблема несовпадения версий, но использование перенаправления привязки на web.config не помогло.

Именно тогда я понял, что System.Data.SqlClient.dll не копируется в мою папку bin. Это было связано с неправильной ссылкой на сборку. Я не знаю, как эта ссылка оказалась испорченной, хотя.

1
Reuel Ribeiro 4 Янв 2020 в 13:08

Пожалуйста, проверьте свою версию SQL Server на вашем компьютере, на вашем компьютере может быть установлено более одной версии SQL Server Express. Пожалуйста, попробуйте подключиться (localdb) / MSSQLLOCALDB из вашей студии управления, и если вы можете открыть, попробуйте обновить соединение в вашей программе и повторите попытку.

0
Bharath 6 Мар 2019 в 20:47