C# SqlConnection Reference Error - 네임스페이스 'System.Data.SqlClient'에 형식 이름 'SqlConnection'이(가) 없습니다.

반응형

데이터베이스 객체 사용 오류 발생

C# Winform 프로젝트에서 데이터베이스에 연결하려고 'SqlConnection' 객체를 사용하니 오류가 발생된다.

CS1069 네임스페이스 'System.Data.SqlClient'에 형식 이름 'SqlConnection'이(가) 없습니다.

 

using System.Data.SqlClient이 잘 명시되어 있음에도 오류가 출력된다.

분명 이전 프로젝트에서도 잘 사용했었는데 왜 그럴까?

 

원인

Microsoft는 최신 버전의 Visual Studio 및 .NET Core 5.0 이상에서 System.Data.SqlClient를 제거했다고 한다.

즉, Microsoft는 .NET Core 또는 .NET 5 이상에서는 System.Data.SqlClient가 기본적으로 포함되지 않는다.

여태 데이터베이스를 사용했던 프로젝트는 .NET Framework를 사용했던 것이다.

.NET Framework 프로젝트에서 System.Data.SqlClient는 기본적으로 포함되어 있다.

 

해결 방법

NuGet 패키지를 통해 참조를 추가하면 된다.

하지만 .NET Core/5+부터는 System.Data.SqlClient 대신

Microsoft.Data.SqlClient를 사용하는 것을 권장하고 있다.

Nuget 패키지 관리를 통해 SqlClient를 설치하는 예시 이미지

 

이제 코드에 문제 없이 SqlConnection 객체가 잘 참조되고 있다.

SqlConnection의 오류가 사라진 예시 이미지

 

만약 데이터베이스 연결 시도 시 아래와 같은 오류가 발생한다면,

연결 옵션에서 TrustServerCertificateTrue로 설정해주면 된다.

  • 오류 내용 : 서버에 연결했지만 로그인하는 동안 오류가 발생했습니다. 신뢰되지 않은 기관에서 인증서 체인을 발급했습니다.
// 연결 설정에서 TrustServerCertificate=True 설정
string connectionString = "Server=_;Database=_;User Id=_;Password=_;TrustServerCertificate=True";

using (SqlConnection connection = new SqlConnection(connectionString))
{
	// 코드 작성
}

 

참고

stackoverflow -Unable to locate System.Data.SqlClient reference

반응형