我们需要使用C#从FoxPro 8读取数据。我要做一些操作,并将一些数据推送到SQL Server数据库。我们不确定读取这些数据的最佳方法是什么。
我看过OLE DB和ODBC;什么是最好的?
规定我们:
答案 0 :(得分:5)
我会使用OLEDB连接器 - 它最近更新,速度更快,处理内存更好。
如果您只是通过OLEDB驱动程序从DBF读取数据,我不会担心在记录或文件级别锁定或损坏数据。您需要做的就是处理C#代码中的异常,例如,当FoxPro应用程序中的某些进程将DBF独占打开而您无法读取它时。
您还需要注意优化任何查询以使用DBF文件上的可用索引,特别是因为您提到它很大。
我认为这一切都在同一个局域网上?如果必须通过互联网工作,那么您需要调查通过Web服务公开FoxPro数据。
最后,还有其他选项可用于访问DBF文件。
Sybase还提供可以访问DBF文件的ODBC和OLEDB个驱动程序 - 但是它们不能使用FoxPro触发器,存储过程等。不过,在你的情况下,这几乎无关紧要。
答案 1 :(得分:2)
根据this MSDN article,它建议使用Visual FoxPro OLE DB提供程序。查看本文,它提供了有关如何使用OLE DB提供程序以及如何从DBF数据源查询数据的示例。
答案 2 :(得分:0)
在VFP中编写一些将数据转储为CSV或XML的代码也很容易 - 考虑将此代码添加到FoxPro应用程序中。处理这些文件比尝试连接到片状FoxPro数据库要容易得多。
答案 3 :(得分:0)
Codeplex上有一个LinqToVfp工具。请参阅:http://linqtovfp.codeplex.com
它有一些很好的样本可以帮助你入门。