如何使用VB.Net从64位操作系统上的DBF文件中读取?

时间:2011-03-15 12:19:19

标签: vb.net dbf

如何使用VB.Net从64位操作系统上读取DBF文件?

3 个答案:

答案 0 :(得分:1)

首先,您需要访问64位可再发行组件,可从以下位置获取: http://www.microsoft.com/downloads/en/details.aspx?familyid=C06B8369-60DD-4B64-A44B-84B371EDE16D&displaylang=en

然后,您可以在控制面板,管理工具,数据源(ODBC)中配置ODBC数据源。

然后,我能够在C#中这样做,具有以下内容;这在VB.NET中应该类似:

var connectionString = "Driver={Microsoft dBASE Driver (*.dbf)};" +
                                                      "Driverid=277;" +
                                                      @"Dbq=C:\temp\";

var query = "SELECT * FROM UPDATED" //file is "updated.dbf"


using (var oConn = new OdbcConnection { ConnectionString = connectionString })
            {
                try
                {
                    oConn.Open();
                    var oCmd = oConn.CreateCommand();
                    oCmd.CommandText = Query;

                    var dr = oCmd.ExecuteReader();

                    if (dr.HasRows)
                    {
                        while (dr.Read())
                        {

                // get your data from your dbf!
                        }
                    }
                }
                finally
                {
                    oConn.Close();
                }
            }

答案 1 :(得分:0)

您需要将程序编译为32位;它仍然可以在64位操作系统上正常运行。将平台目标更改为“x86”而不是“任何CPU”或“x64”。然后,您可以使用Visual FoxPro Ole Db提供程序来访问dbf文件。

答案 2 :(得分:0)

而不是Microsoft.Jet.OLEDB ...您必须在Win7中的连接字符串中使用Microsoft.ACE.OLEDB ....有关更多信息,请访问www.connectionstrings.com accdb 部分。您可以作为表连接到DBF文件并查询数据/模式。

如果您的Win7是64位且MS Office是32位安装(Taskmanager winword.exe * 32),则ACE驱动程序将以32位模式安装,因此您的程序/源代码将无法连接到DBF文件。 / p>

如何找到。

在C:\ windows \ sysWoW64 \ odbcad32.exe中打开32位ODBC仿真器,然后转到“驱动程序”选项卡。您必须看到许多要连接的驱动程序,您将在其中找到ACE提供程序。

在C:\ windows \ system32 \ odbcad32.exe中打开64位ODBC管理员,然后转到“驱动程序”选项卡。您必须只看到“SQL server”驱动程序或少数特定于64位而不是ACE驱动程序的驱动程序。

<强>解决方案

  1. 在x86模式下编译当前程序以使用32位仿真器驱动程序。
  2. 另一个解决方案是找到是否可以卸载32位MS Office并获得64位版本。这将自动解决所有问题。
  3. 祝你好运

    Venkat