【问题标题】:Transfer data from DBF to SQL Server using C#使用 C# 将数据从 DBF 传输到 SQL Server
【发布时间】:2016-08-26 16:46:31
【问题描述】:

我需要一个函数将数据从.DBF 文件传输到 SQL Server。

这是我的工作:

  • 第一步:我使用OleDBDataAdapter.Fill读取.DBF文件
  • 第二步:将此表插入SQL Server。

对于 90 列 X 80000 行,第一步需要 74 秒。

有没有办法加快这个过程?

另外,如果有任何方法可以直接从.DBF 通信到 SQL Server,请指导我。顺便说一句,我使用的是 C# 和 SQL Server 2008。

我的错误,伙计们。我很少在这里发帖。 这是我的代码(将 DBF 传输到数据表需要 1 分钟):

            OleDbCommand oledbcommand = new OleDbCommand();
            OleDbDataAdapter adp = new OleDbDataAdapter();
            oledbcommand.Connection = oledbConnectOpen();
            oledbcommand.CommandText = @"SELECT * FROM " + filename;
            adp.SelectCommand = oledbcommand;

            adp.Fill(dt); //this is the step that consume time
            dt.TableName = filename;
            return dt;

【问题讨论】:

  • 你现有的代码是什么样的?
  • 你的问题是什么?我想你是想加快这个过程。
  • 有几种方法可以加快速度,但是我们需要看看您当前在当前数据传输方面正在做什么。
  • 您似乎认为这是一项代码编写服务,您可以在其中发布您的需求和选择的语言,而代码猴子会大量编写代码来满足这些需求。你错了。请附上您为尝试自己编写的代码,解释您在该代码中遇到的问题,并提出与该问题相关的具体问题
  • 我的建议是您将 SSIS 包视为一个选项,除非这必须作为交互式应用程序中的一个步骤来完成。这将允许您从 OLE 数据源传输到 SQL Server 表。

标签: c# sql-server foxpro dbf


【解决方案1】:

在这种情况下,您最好使用 OleDbDataReader 而不是 OleDBDataAdapter,因为阅读器已针对只进、只读访问进行了优化。见this article.

【讨论】:

  • 我测试了阅读器和适配器。没有大的区别,虽然读者确实节省了 1.31 秒。谢谢艾伦,
猜你喜欢
  • 1970-01-01
  • 2016-12-04
  • 2016-01-13
  • 2015-10-19
  • 2010-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多