2017-06-28 31 views
-5

に一台のコンピュータではなく上で動作します。コードは、私は次のコードを持っている別の1

private void CreateDBFFile() 
    { 


     string connection = ConfigurationManager.ConnectionStrings["conn"].ConnectionString; 




     using (OleDbConnection dbconnection = new OleDbConnection(connection)) 
     using (OleDbCommand command = dbconnection.CreateCommand()) 
     { 
      dbconnection.Open(); 

      command.CommandText = "CREATE TABLE Test (Id Integer, Changed Double, Name Text)"; 
      command.ExecuteNonQuery(); 
     } 



    } 

接続文字列は、このようなものです:

<connectionStrings> 
    <add name="conn" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\temp; Extended Properties=dBase IV" providerName="System.Data.OleDb" /> 

</connectionStrings> 

上記のコードは、私の自宅のコンピュータ上で動作しますが、私の仕事のコンピュータではありません。私は自分の仕事用コンピュータ上のどのファイルが壊れているのかわからない。上記のコードは接続を開こうとすると終了する。

ご協力いただきますようお願い申し上げます。

+1

同じバージョンのデータベースがインストールされていますか?あなたのcomapnyロックポートはありますか?会社のネットワークはファイアウォールされていますか? – Aganju

+0

あなたはどんなエラーがありますか? – SLaks

+3

あなたの 'データソース'が間違っています。 – SLaks

答えて

1

おそらく、問題は、processoアーキテクチャ(x86またはx64)、およびWindowsにインストールされたODBCドライバによって引き起こされている可能性があります。

アプリケーションは、Visual Studioの上Any CPUに設定されているので、もしあなたが、Microsoft.Jet.OLEDB.4.0プロバイダを使用している、とあなたはx86コンピュータ上で実行し、アプリケーションがODBCドライバの32ビットバージョンを探し、そして同様にもしますx64コンピュータで実行すると、アプリケーションは64ビット版のODBCドライバを検索します。

これは、Windowsのx86/x64バージョンの一般的な問題です。

あなたは両コンピュータがODBCドライバの32ビットバージョンを持っていることを確認している場合は、あなただけのusign、32ビットモードで実行するようにアプリケーションを「強制」することができます:右クリックした

メインプロジェクト>プロパティ>は、アプリケーションは、Windowsのx86x64バージョンでx86それ意志の実行の両方の場合であっても>厚底 ターゲット= x86の

を構築します。

関連する問題