gpt4 book ai didi

c# - 如何使用 .NET 从现有表创建新的 VFP (OLEDB) 表?

转载 作者:行者123 更新时间:2023-11-30 17:23:54 25 4
gpt4 key购买 nike

我们有一个创建许多 Visual Foxpro (DBF) 表的应用程序。这些表中的每一个都有不同的架构,但它们都包含一个已知的日期字段。

我被要求创建另一个应用程序(在 C# 中),它将上周的数据从每个表复制到一个新表(在与源表不同的文件夹中)。不同的表将保留(例如,如果有三个源表,则将有三个目标表)。

随着时间的推移,表格可能会发生变化(例如添加新字段),因此我无法对表格结构做出假设(除了上述日期字段的存在)。

从一个表中获取数据并创建具有相同结构的新表的最简单/最佳方法是什么?

我知道如何查询表以提取数据(例如,用上周的记录填充数据集)。但是,我认为必须有更好的方法来创建新表并用结果填充它,而不是手动解析架构中的所有字段信息并使用它来重新创建目标表。

使用 FoxPro 似乎与使用 SQL Server 完全不同,每次都让我很头疼,所以我需要一些关于我的方法的指导。

生产机器上安装了 VFP 9 OLEDB 驱动程序。如果可能的话,我们宁愿不必安装太多其他东西。

最佳答案

要获得数据、表和记录的精确副本,您可以通过单个 SQL 选择通过

OleDbConnection oConn = new OleDbConnection("Provider=VFPOLEDB.1;Data Source=C:\\SomePath");
OleDbCommand oCmd = new OleDbCommand();
oCmd.Connection = oConn;
oCmd.Connection.Open();
oCmd.CommandText = "select * from SomeTable where someCondition into table YourNewTable";
oCmd.ExecuteNonQuery();
oConn.Close();

您的 where 子句几乎可以是任何东西,Into TABLE 子句告诉 VFP 引擎将结果集创建为一个新表,因此无需显式声明类型、列等,从一个查询数据并将其插入另一个...

一个需要考虑的问题...验证用户访问权限显然能够在您尝试创建新表的任何地方创建、读取和写入。如果需要,您甚至可以指定完全限定的路径,例如 C:\SomeOtherPath\Monthly\MyTable1...

关于c# - 如何使用 .NET 从现有表创建新的 VFP (OLEDB) 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1686530/

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