Как создать файл DBF с нуля в C#?

Я пытаюсь написать файл DBF с нуля в своей программе. Я хочу создать его, добавить несколько столбцов, а затем добавить данные в столбцы X раз. Моей программе не нужно будет читать ее снова, но другие программы будут.

Я искал решение для этого, но все, похоже, предполагают существующий файл DBF, в то время как я хочу сделать новый.

цель этого-сделать DBF частью Шейп-файла ESRI.

кто-нибудь знает как этого?

3 ответов


скачать поставщик Microsoft OLE DB для Visual FoxPro 9.0 и использовать:

string connectionString = @"Provider=VFPOLEDB.1;Data Source=D:\temp";
using (OleDbConnection connection = new OleDbConnection(connectionString))
using (OleDbCommand command = connection.CreateCommand())
{
    connection.Open();

    OleDbParameter script = new OleDbParameter("script", @"CREATE TABLE Test (Id I, Changed D, Name C(100))");

    command.CommandType = CommandType.StoredProcedure;
    command.CommandText = "ExecScript";
    command.Parameters.Add(script);
    command.ExecuteNonQuery();
}

редактировать: OP не хочет формат FoxPro DBF, но dBase IV:

string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\temp;Extended Properties=dBase IV";

using (OleDbConnection connection = new OleDbConnection(connectionString))
using (OleDbCommand command = connection.CreateCommand())
{
    connection.Open();

    command.CommandText = "CREATE TABLE Test (Id Integer, Changed Double, Name Text)";
    command.ExecuteNonQuery();
}

Я ничего не знаю о Шейп-файл ESRI... но вы можете создать dbf с помощью OleDb.

вот пример использования поставщика OleDb VFP:

    string dbfDirectory = @"c:\";
    string connectionString = "Provider=VFPOLEDB;Data Source=" + dbfDirectory;
    using (OleDbConnection connection = new OleDbConnection(connectionString)) {
        connection.Open();
        OleDbCommand command = connection.CreateCommand();

        command.CommandText = "create table Customer(CustId int, CustName v(250))";
        command.ExecuteNonQuery();
        connection.Close();
    }

Если вы хотите, чтобы полностью устранить внешние зависимости, вам придется прибегнуть к созданию файла вручную. И для того, чтобы сделать это, вам нужно будет провести некоторое время с белой бумагой, описывающей спецификации формата файла, чтобы понять поля, которые вам нужно реализовать, и то, что они должны содержать. Вы можете найти это онлайн здесь:http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf

конечно, это на самом деле не предприятие для слабонервных. Убедитесь, что вы понимаете работу, которая связана здесь, прежде чем отправиться в путешествие.