すべてのデータを SQL Server CE から Access mdb データベースに転送するソリューションが必要です。
このアプローチhttp://www.codeproject.com/Answers/483989/HowplustoplusExportplusSQLplusTablesplusToplusAcce#answer2 (ソリューション # 2) を試しましたが、「接続文字列または IN 句にデータベースが指定されていません」というエラーが表示されました。
非コンパクト SQL サーバーに接続すると、コードが機能します。
問題は IN 句の接続文字列にあると思いますが、変更方法がわかりません。
これが私のコードです:
private void ExportTable(string tableName, string source, string destination)
{
var connStr = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}", destination);
var cmdText = string.Format("SELECT * INTO {0} FROM [{0}] IN ''[Data Source={1};Max Database Size='4000';Persist Security Info=False;];", tableName, source);
using (var conn = new OleDbConnection(connStr))
{
conn.Open();
using (var cmd = new OleDbCommand(cmdText, conn))
{
cmd.ExecuteNonQuery(); // error on this line
}
conn.Close();
}
}
接続文字列: Data Source={1};Max Database Size='4000';Persist Security Info=False; データベースに直接接続すると正常に動作します。
更新:どうやら IN 句のソース DB の形式は次のようになり
ます。データベース =パス]
私が使うとき
var cmdText = string.Format("SELECT * INTO {0} FROM [{0}] IN ''[SqlServer CE; DATABASE={1}];", tableName, source);
別のエラーが表示されます: インストール可能な ISAM が見つかりませんでした。
SQLServer CE の正しい型を知っていますか? それはまったくサポートされていますか?私はそれについての情報を見つけることができませんでした。
私も試しました:SQL CE、SQLSERVER.CE、Microsoft.SQLSERVER.CE.OLEDB.3.5、Microsoft.SQLSERVER.MOBILE.OLEDB.3.0など - 同じエラー...