相关文章推荐
爱运动的毛豆  ·  spring-boot-starter-va ...·  10 小时前    · 
没有腹肌的黑框眼镜  ·  spring mvc +@Valid ...·  10 小时前    · 
爱听歌的风衣  ·  C#: Validate a ...·  8 小时前    · 
礼貌的萝卜  ·  error C2039: ...·  6 小时前    · 
重情义的蟠桃  ·  java ...·  44 分钟前    · 
不拘小节的领带  ·  31. Caching·  1 月前    · 
完美的熊猫  ·  Azure HDInsight 中的 ...·  1 年前    · 
知识渊博的热带鱼  ·  【xlwings ...·  1 年前    · 
乐观的甘蔗  ·  Execution failed for ...·  1 年前    · 
公司数据库从32位的SqlServer 2005升级到64位的SqlServer 2008 R2后,无法再像原来通过Link Server连接VFP同步数据,因此考虑用代码程序从VFP数据库中读取所需数据然后再插入到SqlServer数据库中,下面贴出该C#代码以备忘或供有需要者参考。
private void GetDataFromVFP()
OdbcConnection conn = null ;
string strOdbcConn = @"Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=D:/a/b;Exclusive=No;Collate=Machine;" ;
string strInsertConn = @"User id=a;Password=b;Database=c;Server=d;Connect Timeout=50;Max Pool size=200;Min pool Size=5" ;
conn = new OdbcConnection ();
conn.ConnectionString = strOdbcConn;
conn.Open();
string strTableName = "" ;
for ( int i = -8; i < 0; i++)
strTableName = "FOLIO" + DateTime .Today.AddDays(i).ToString( "dd" );
string sql = string .Format( @"select a,b,c from {0}" , strTableName);
OdbcDataAdapter da = new OdbcDataAdapter (sql, conn);
DataTable dt = new DataTable ();
da.Fill(dt);
SqlBulkCopy bulkCopy = new SqlBulkCopy (strInsertConn);
bulkCopy.BulkCopyTimeout = 1800000;
bulkCopy.DestinationTableName = "strTableName" ;
bulkCopy.WriteToServer(dt);
catch
finally
if (conn != null )
conn.Close();