日期:2014-05-17  浏览次数:20844 次

sqlserver 读取 dbf文件
比如说深圳交易所行情数据 sjshq.dbf 怎样弄到sqlserver中最方便?
我现在有很多dbf数据要弄到数据库里

我现在是sqlserver建立了对应的表 然后将dbf读取到了OleDbDataAdapter 然后我该怎么写到sqlserver对应的表里呢
谁有什么好方法?

我现在读取时这么写的:
string str_conn = @"Provider=vfpoledb;Data Source=" + str_path + ";Collating Sequence=machine;";
  SqlConnection Connection = new SqlConnection();
  SqlDataAdapter sqldataadp = new SqlDataAdapter();
  Connection.ConnectionString = FileRead.str_local;
  try
  {
  OleDbConnection myConnection = new OleDbConnection(str_conn);
  OleDbDataAdapter adpt = new OleDbDataAdapter("select * from sjshq.dbf", myConnection);
  DataTable myTab = new DataTable();
  adpt.Fill(myTab);
  myConnection.Close();

  }
  catch (Exception message)
  {
  CalculateLog.WriteLog("error", "读取DBF文件出错!message=" + message.Data.ToString());
  MessageBoxEx.Show("程序异常,请与管理员联系!错误信息:" + message.Data.ToString(), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
  }

------解决方案--------------------
太大太复杂的数据,最好不要用程序去处理,如果出错,都不知道怎么错的.
最简单的办法:
先将 DBF 文件导入到 ACCESS 或 SQL SERVER 2000, 再导到你用的 2005 或 2008 里.
注:2000 的DTS 中有 VFP 驱动,2005及以上去除了.

其实,导入都是由向导做的,你只要监测住相关的信息就行了,必要的时候,设置列映射.