C# 插入数据表时,即使只有一行,SqlBulkCopy也会挂起,不会出现任何异常或超时

C# 插入数据表时,即使只有一行,SqlBulkCopy也会挂起,不会出现任何异常或超时,c#,sqlbulkcopy,C#,Sqlbulkcopy,有一个问题,基本上我有一个非常大的数据表(50000行),我使用SqlBulkCopy通过我编写的函数插入它: public static void DoSqlBulkCopy(string connectionString, string destinationTableName, DataTable dataTable, int batchSize = 2000) { using (var bulk = new SqlBulkCopy(connectionString, SqlBul

有一个问题,基本上我有一个非常大的数据表(50000行),我使用SqlBulkCopy通过我编写的函数插入它:

public static void DoSqlBulkCopy(string connectionString, string destinationTableName, DataTable dataTable, int batchSize = 2000)
{
    using (var bulk = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.CheckConstraints))
    {
        bulk.BatchSize = batchSize;
        bulk.DestinationTableName = destinationTableName;

        for (int i = 0; i < dataTable.Columns.Count; i++)
        {
            bulk.ColumnMappings.Add(dataTable.Columns[i].ColumnName, dataTable.Columns[i].ColumnName);
        }

        bulk.WriteToServer(dataTable);
    }
}
publicstaticvoiddosqlbulkcopy(stringconnectionstring,stringdestinationtablename,DataTable-DataTable,int-batchSize=2000)
{
使用(var bulk=new SqlBulkCopy(connectionString,SqlBulkCopyOptions.CheckConstraints))
{
bulk.BatchSize=BatchSize;
bulk.DestinationTableName=DestinationTableName;
对于(int i=0;i
这段代码适用于其他内容,但在这个数据集上,它只是挂在WriteToServer上

我挠了挠下巴,启动了SQL分析器,但没有任何活动


有什么建议吗?它也没有超时,我留了一夜。

修复了它。表名拼写错误,正在插入CuteCat而不是CuteCat。它挂起,没有错误消息。该死的东西

没有columnmappings循环,情况如何?批量复制时,您无法在分析器中捕获语句。你试过不分批次吗?你是怎么发现它挂在纸上的?你们有试过接球挡吗?你能用datatable中的一行复制这个吗?啊。。。因此,对于1行,同样的问题也会发生。我想一定是有什么东西阻塞了数据库,尽管奇怪的是它没有超时。这里没有try-catch,只是在代码行前后登录到控制台。我建议使用连接字符串并在非sql批量复制操作中进行尝试。希望您会收到一条有用的错误消息。如果您的SQLBulkCopy随机挂起,可能是线程问题。如果您同时使用实体框架,这种情况会发生很多,因为如果您没有正确管理连接,它可能会发生冲突。恐怕我没有其他建议。