불변 이름으로 SQL Server CE 제공 업체 공장을 해결할 수 없습니다.
-
05-07-2019 - |
문제
이 코드 라인
DbProviderFactory factory = DbProviderFactories.GetFactory("Microsoft.SqlServerCe.Client");
이 예외를 던졌습니다
System.Configuration.ConfigurationErrorsexception : 등록 된 .NET Framework Data Provider를 찾거나로드하지 못했습니다.
내 machine.config 파일에는 다음 섹션이 포함되어 있지만
<system.data>
<DbProviderFactories>
<add name="OracleClient Data Provider" invariant="System.Data.OracleClient" description=".Net Framework Data Provider for Oracle" type="System.Data.OracleClient.OracleClientFactory, System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add name="SqlClient Data Provider" invariant="System.Data.SqlClient" description=".Net Framework Data Provider for SqlServer" type="System.Data.SqlClient.SqlClientFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add name="SQL Server CE Data Provider" invariant="Microsoft.SqlServerCe.Client" description=".NET Framework Data Provider for Microsoft SQL Server 2005 Compact Edition" type="Microsoft.SqlServerCe.Client.SqlCeClientFactory, Microsoft.SqlServerCe.Client, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
</DbProviderFactories>
</system.data>
내가 뭔가를 놓치고 있습니까? 다른 곳을 봐야하나요? 코드와 같은 코드 DbProviderFactory factory = SqlCeProviderFactory.Instance
잘 작동합니다.
해결책
거기 있습니다 여러 SQL Server CE가 설치됩니다. 그만큼 비주얼 스튜디오 도구 서버 탐색기 및 디자인 구성 요소를 제공하고 SQL Server CE DLL을 비주얼 스튜디오에 로컬 위치에 배치합니다. 설치해야했습니다 실행 시간 Machine.config 파일에 데이터 제공자를 등록하려면
다른 팁
Visual Studio 2012에서 기본값 ProviderName ~이다 System.Data.SqlServerCe.4.0
.
이것은 허용합니다 나 이름으로 공장을 찾으십시오.
String providerName = "System.Data.SqlServerCe.4.0";
DbProviderFactory factory = DbProviderFactories.GetFactory(providerName);
if (factory == null)
throw new Exception("Unable to locate factory for " + providerName);
DbConnection conn = factory.CreateConnection();
conn.ConnectionString = connectionString;
conn.Open();
메모: 모든 코드는 공개 도메인으로 릴리스됩니다. 귀속이 필요하지 않습니다.
제휴하지 않습니다 StackOverflow