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