Как создать файл 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
конечно, это на самом деле не предприятие для слабонервных. Убедитесь, что вы понимаете работу, которая связана здесь, прежде чем отправиться в путешествие.