如何处理C#中的传输级错误

时间:2016-07-12 20:59:53

标签: c#

我遇到了这个问题,这是我第二次停止工作,所有的工作现在都没用了。我通过制表符分隔文本文件将一百万条记录传输到SQL Server 2012数据库表。移动此类记录需要总共3个小时,因为服务器距离太远。

不知怎的,我的连接破坏了服务器并且程序处理了60万行并且出现了这个错误,当我修复连接错误并继续应用程序时它不会将记录传输到数据库,所以我必须关闭应用程序然后再试一次。

  

将请求发送到服务器时发生传输级错误。 (提供者:TCP提供者,错误:0 - 远程主机强行关闭现有连接。)

我的代码

public void bulkinsert_US(string tablename, DataTable dt)
{
    if (con2.State == ConnectionState.Closed)
    {
        con2.Open();
    }

    SqlBulkCopy blkcopy = new SqlBulkCopy(con2);
    blkcopy.DestinationTableName = tablename;
    blkcopy.BatchSize = dt.Rows.Count;
    blkcopy.BulkCopyTimeout = 0;

    toolStripProgressBar1.Minimum = 0;
    this.Invoke(new MethodInvoker(delegate()
    { toolStripProgressBar1.Maximum = blkcopy.BatchSize; }));
    blkcopy.NotifyAfter = 1000;
    blkcopy.SqlRowsCopied +=blkcopy_SqlRowsCopied;

    blkcopy.WriteToServer(dt);
    blkcopy.Close();

}

我正在寻找一个处理解决方案,以便我不必关闭应用程序并重新开始。

0 个答案:

没有答案