Как читать из файла DBF на 64-битной ОС, используя VB.Net? - PullRequest
1 голос
/ 15 марта 2011

Как читать из файла DBF в 64-битной ОС, используя VB.Net?

Ответы [ 3 ]

1 голос
/ 15 марта 2011

Во-первых, вам нужен доступ к 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();
                }
            }
0 голосов
/ 23 мая 2012

Вместо Microsoft.Jet.OLEDB ... вы должны использовать Microsoft.ACE.OLEDB ... в строке подключения в Win7. Дополнительную информацию можно получить на сайте www.connectionstrings.com в разделе accdb . Вы можете подключиться к файлу DBF в виде таблицы и запросить данные / схему.

Если ваша Win7 64-битная, а MS Office 32-битная (Taskmanager winword.exe * 32), драйверы ACE будут установлены в 32-битном режиме и, следовательно, ваша программа / исходный код не будет подключаться к файлу DBF.

Как найти.

Откройте 32-битный эмулятор ODBC в C: \ windows \ sysWoW64 \ odbcad32.exe и перейдите на вкладку «Драйверы». Вы должны увидеть множество драйверов для подключения, в которых вы найдете поставщика ACE.

Откройте 64-битный администратор ODBC в C: \ windows \ system32 \ odbcad32.exe и перейдите на вкладку «Драйверы». Вы должны видеть только драйвер «SQL-сервер» или несколько драйверов, специфичных для 64-разрядных систем, но не драйвер ACE.

Решение

  1. Скомпилируйте текущую программу в режиме x86, чтобы использовать драйверы 32-битного эмулятора.
  2. Другое решение - найти 32-разрядную версию MS Office и получить 64-разрядную версию. Это решит все проблемы автоматически.

Удачи

Venkat

0 голосов
/ 15 марта 2011

Вам нужно скомпилировать вашу программу как 32-битную;он все равно будет работать на 64-битной ОС.Измените целевую платформу на «x86» вместо «Any CPU» или «x64».Затем вы можете использовать поставщик Visual FoxPro Ole Db для доступа к файлу dbf.

...