SQLSERVER Compact Editionはプロセスベースで動作させることが出来るため、関連するDLLを実行するEXEと同じフォルダに置くだけで動作させることができる。
それについては
方法 : SQL Server Compact 3.5 データベースをアプリケーションと共に配置する
http://msdn.microsoft.com/ja-jp/library/aa983326.aspxに書いてあるが、これだけではおそらく動作させることはできないだろう。
自分がやったところ
DbProviderFactories.GetFactory() の箇所でSystem.ArgumentException: 要求された .Net Framework データ プロバイダが見つかりません。これは、インストールされていない可能性があります。
というエラーが発生してDBに接続できなかった。
machine.configを調べてみると<DbProviderFactories>エントリにSystem.Data.SqlServerCe.3.5が存在しなかった。
解決方法としてはプロジェクトにApp.configを追加し、自前でデータプロバイダを記述すること。こんな感じ
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.data>
<DbProviderFactories>
<clear />
<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 Compact Edition Data Provider" invariant="System.Data.SqlServerCe" description=".NET Framework Data Provider for Microsoft SQL Server Compact Edition" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
<add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
</DbProviderFactories>
</system.data>
</configuration>
posted by 丸刈り〜太 at 18:30|
Comment(0)
|
TrackBack(0)
|
プログラム