문제

이 코드 라인

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

메모: 모든 코드는 공개 도메인으로 릴리스됩니다. 귀속이 필요하지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top