代码可以在一台计算机上运行,​​而不是在另一台计

时间:2017-06-28 03:06:43

标签: c# asp.net

我有以下代码:

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 个答案:

答案 0 :(得分:1)

问题可能是由processo架构(x86或x64)以及Windows上安装的ODBC驱动程序引起的。

您正在使用Microsoft.Jet.OLEDB.4.0提供程序,因此如果您的应用程序在Visual Studio上设置为Any CPU,并且您在x86计算机上运行它,那么您的应用程序将查找32 ODBC驱动程序的位版本,类似地,如果您在x64计算机上运行,​​您的应用程序将查找64位版本的ODBC驱动程序。

这是ODBC驱动程序和Windows的x86 / x64版本的常见问题。

如果您确定这两台计算机都具有32位版本的ODBC驱动程序,那么您可以强制使用&#34;强制使用#34;您的应用程序以32位模式运行,请使用:

  

右键单击主项目&gt;属性&gt;构建&gt; Plataform   target = x86

即使您的应用程序为x86,它也会在x86x64版本的Windows上运行。