gpt4 book ai didi

c# - 在可从 Excel 读取的 C# 代码中创建 .DBF(VFP 或非 VFP)

转载 作者:行者123 更新时间:2023-11-30 21:19:57 26 4
gpt4 key购买 nike

语言:C#,系统:Windows7,Excel 2007

我想从一些数据创建一个 .DBF,我想从 Excel 2007 打开它。它可以是 dBase 或 foxpro。我目前在 FoxPro9 中做(顺便说一句,这段代码来自互联网):

 OleDbConnection con = new OleDbConnection("Provider=VFPOLEDB.1;Data Source=C:\\Temp\\;");
con.Open();
OleDbCommand cmd1 = new OleDbCommand("Create Table TestDBF (Field1 I, Field2 C(10))", con);
OleDbCommand cmd2 = new OleDbCommand("Insert Into TestDBF Values (1, 'Hello')", con);
OleDbCommand cmd3 = new OleDbCommand("Insert Into TestDBF Values (2, 'World')", con);
cmd1.ExecuteNonQuery();
cmd2.ExecuteNonQuery();
cmd3.ExecuteNonQuery();
con.Close();

这会生成我可以在 DbfViewer 中打开的文件,但是,我无法在 Excel 2007 中打开它,也无法在我拥有的某些应用程序中使用。我可以使用 DbfViwer 手动将 FoxPro .dbf 转换为 dbaseIII dbf,但我希望它是自动的。

有什么想法吗?

提前致谢

最佳答案

这是一个小型控制台应用程序,它将使用 CREATE TABLE SQL 语法创建一个 DBF,然后将其复制到可以在 Excel 中打开的 FoxPro DBF 文件格式的早期版本。

static void Main(string[] args)
{
Console.WriteLine("Starting program execution...");

string connectionString = @"Provider=VFPOLEDB.1;Data Source=C:\YourDirectory\";

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

string vfpScript = @"Create Table TestDBF (Field1 I, Field2 C(10))
USE TestDBF
COPY TO OpensWithExcel TYPE Fox2x
USE";

scriptCommand.CommandType = CommandType.StoredProcedure;
scriptCommand.CommandText = "ExecScript";
scriptCommand.Parameters.Add("myScript", OleDbType.Char).Value = vfpScript;
scriptCommand.ExecuteNonQuery();
}
}

Console.WriteLine("End program execution...");
Console.WriteLine("Press any key to continue");
Console.ReadLine();
}

关于c# - 在可从 Excel 读取的 C# 代码中创建 .DBF(VFP 或非 VFP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3563584/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com