web-dev-qa-db-ja.com

System.Data.SqlClient参照が見つかりません

新たにVisual Studio 2017 Professionalをインストールしました。 .NET 4.7.1を使用してクイックPOCコンソールアプリケーションを構築していますが、System.Data.SqlClientの参照が見つかりません。

システムを精査し、System.Data.SqlClient.dllの4つのバージョンを見つけましたが、どれも正しくないためコンパイルできません。 System.Dataを使用しようとしましたが、SqlClientへの参照は内部にありません。 System.Dataのdll/referenceを手動で追加しましたが、参照の問題も解決しませんでした。

私のアプリケーションは現時点では本当にシンプルであり、この参照がないためコンパイルできません。

これを解決するには、どのような手順が必要ですか?

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));
                        }
                    }
                }
            }
        }
    }
}
6
Allan L

dotnet add package System.Data.SqlClient

8
Jorge Candeias

ソリューションエクスプローラーに参照オプションを追加するだけで、その後機能しない場合は、クラスライブラリを変更する必要があります。「。net standard」とは別に「.net framework」を使用します

2
Parag Jain

私の場合、他の回答とは異なる微妙な問題がありました。参照が追加されましたが、黄色の三角形が表示されていたため、参照に問題がありました。

参照ドロップダウンから削除する必要がありました

Assembly references

そして、パッケージを再インストールします

パッケージ更新System.Data.SqlClient-再インストール

次に、正しい参照を追加しました。

リファレンスがあることを知っていたので、2日間髪を引き離していましたが、黄色の三角形があることに気づきませんでした。

バージョンの不一致だけの問題だと思っていましたが、web.configどこでもありません。

System.Data.SqlClient.dllbinフォルダーにコピーされていませんでした。これは、アセンブリ参照が間違っていたためです。しかし、この参照がどのように破損したのかわかりません。

1
Reuel Ribeiro

マシンのSQL Serverのバージョンを確認してください。マシンに複数のバージョンのSQL Server Expressがインストールされている場合があります。管理スタジオから(localdb)/ MSSQLLOCALDBに接続してみてください。開くことができる場合は、プログラムの接続を更新してから再試行してください。

0
Bharath