c# - 如何在 C# 中从头开始创建 DBF 文件?

标签 c# .net .net-2.0 dbf

我正在尝试在我的程序中从头开始编写一个 DBF 文件。我想创建它,添加一些列,然后将数据添加到列 X 次。我的程序不需要再次读入它,但其他程序需要。

我四处寻找解决方案,但似乎都假设有一个现有的 DBF 文件,而我想创建一个新文件。

这样做的目的是使 DBF 成为 ESRI ShapeFile 的一部分。

有人知道怎么做吗?

最佳答案

下载Microsoft OLE DB Provider for 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();
}

关于c# - 如何在 C# 中从头开始创建 DBF 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4932530/

相关文章:

c# - 计算机上的位置坐标显示 X=-32000,Y=-32000

c# - 为什么我们在编译时得到 ".XML.OLD"文件?

php - 我应该在什么基础上构建我的 alpha 平台,PHP、Ruby、Python、.NET 等?

c# - 调用堆栈中的 "external code"是什么意思?

c# - 检查 List<T> 日期的最快方法

c# - Visual Studio 2008 与 2005 或 C# 3.0 与 C# 2.0 的新增功能是什么?

c# - 在 .Net 2.0 项目中创建扩展方法,使用 C# 4.0 进行编译

c# - 企业库迁移 - 您必须配置容器以提供此值

.net - 在.net应用程序中播放声音的更好的解决方案是什么:DirectX lib或System.Media.SoundPlayer的音频?

c# - ASP.NET Core MVC 通配符路由无法使用与另一个正在工作的设置相同的设置