Сейчас я расскажу как легко и просто работать в 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 используется прямой путь к базе данных!