[英]How to create a DBF file from scratch in C#?
我試圖在我的程序中從頭開始編寫DBF文件。 我想創建它,添加一些列,然后將數據添加到X列的次數。 我的程序不需要再讀它,但其他程序會。
我四處尋找解決方案,但似乎所有人都假設現有的DBF文件,而我想創建一個新文件。
這樣做的目的是使DBF成為ESRI ShapeFile的一部分。
有誰知道如何做到這一點?
下載用於Visual FoxPro 9.0的Microsoft OLE DB提供程序並使用:
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 ShapeFile一無所知......但你可以使用OleDb創建一個dbf。
以下是使用VFP OleDb提供程序的示例:
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
當然,這對於膽小的人來說並不是真正的事。 在開始旅程之前,請確保您了解此處所需的工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.