C#: Работа с DBF файлами

Сейчас я расскажу как легко и просто работать в C# с DBF файлами.
Для этого нам понадобится: новый проект windows form application, 5 минут времени и хорошее настроение 🙂

Создаем новый класс «WorkDBF». Добавляем в него следующие namespace:

using System;
using System.Data.Odbc;
using System.Data;
using System.Windows.Forms;

В сам класс пишем следующее:

class WorkDBF
{
   private OdbcConnection Conn = null;
   public DataTable Execute(string Command)
   {
      DataTable dt = null;
      if (Conn != null)
      {
         try
         {
            Conn.Open();
            dt = new DataTable();
            System.Data.Odbc.OdbcCommand oCmd = Conn.CreateCommand();
            oCmd.CommandText = Command;  
            dt.Load(oCmd.ExecuteReader());
            Conn.Close();
         }
         catch (Exception e)
         {
             MessageBox.Show(e.Message); 
         }
      }
      return dt; 
   }
   public DataTable GetAll(string DB_path)
   {
      return Execute("SELECT * FROM " + DB_path);
   }

   public WorkDBF()
   {
      this.Conn = new System.Data.Odbc.OdbcConnection();
      Conn.ConnectionString = @"Driver={Microsoft dBase  Driver (*.dbf)};" +
             "SourceType=DBF;Exclusive=No;" +
             "Collate=Machine;NULL=NO;DELETED=NO;" +
             "BACKGROUNDFETCH=NO;"; 
   }
}

Далее можно по всячески извращаться с данным классом в зависимости от Ваших нужд. Для получения всей базы данных в основном проекте добавим кнопку и два элемента DataGridView. На событие клика по кнопке вешаем следующий код:

WorkDBF WDBF = new WorkDBF();
dataGridView1.DataSource = WDBF.GetAll("C:\\DB.dbf");
dataGridView2.DataSource = WDBF.Execute("SELECT id, name FROM C:\\DB.dbf");

В результате в первый датагрид загрузится вся наша база, во второй только поля id и name.

Примечание: как видно из примера после ключевого слова FROM используется прямой путь к базе данных!

Запись опубликована в рубрике C# с метками , , , . Добавьте в закладки постоянную ссылку.