gpt4 book ai didi

sql-server - SQLBulkCopy 完成时的行计数

转载 作者:行者123 更新时间:2023-12-02 00:05:41 25 4
gpt4 key购买 nike

我正在使用 SQLBulkCopy 移动大量数据。我实现了通知事件,以便在每次处理一定数量的行时通知我,但作业完成时不会触发 OnSqlRowsCopied 事件。当 SQLBulkCopy writetoserver 完成时,如何获取复制的总行数?

最佳答案

以下黑客(使用反射)是一个选项:

    /// <summary>
/// Helper class to process the SqlBulkCopy class
/// </summary>
static class SqlBulkCopyHelper
{
static FieldInfo rowsCopiedField = null;

/// <summary>
/// Gets the rows copied from the specified SqlBulkCopy object
/// </summary>
/// <param name="bulkCopy">The bulk copy.</param>
/// <returns></returns>
public static int GetRowsCopied(SqlBulkCopy bulkCopy)
{
if (rowsCopiedField == null)
{
rowsCopiedField = typeof(SqlBulkCopy).GetField("_rowsCopied", BindingFlags.NonPublic | BindingFlags.GetField | BindingFlags.Instance);
}

return (int)rowsCopiedField.GetValue(bulkCopy);
}
}

然后按如下方式使用该类:

int rowsCopied = SqlBulkCopyHelper.GetRowsCopied(bulkCopyObjectInYourCode);

希望这有帮助。

关于sql-server - SQLBulkCopy 完成时的行计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1188384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com