我有下面的代码,我试图用它来测试是否有可能使用事务和notifyAfter属性来引发事件(我已经尝试用事件替换我自己创建/引发的事件,但只有在复制完所有行之后才会引发)。下面的链接表明这是不可能的
MSDN
有没有人有这方面的经验?谢谢
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
{
try
{
using (SqlBulkCopy copy = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.KeepIdentity |SqlBulkCopyOptions.UseInternalTransaction))
{
//Column mapping for the required columns.
for (int count = 0; count < numberOfColumns; count++)
{
copy.ColumnMappings.Add(count, count);
}
//SQLBulkCopy parameters.
copy.DestinationTableName = dataTableName;
copy.BatchSize = batchSize;
copy.SqlRowsCopied += new SqlRowsCopiedEventHandler(OnSqlRowsCopied);
copy.NotifyAfter = 5;
copy.WriteToServer(fullDataTable);
}
}
//Error(s) occured while trying to commit the transaction.
catch (InvalidOperationException transactionEx)
{
//uploadTransaction.Rollback();
status = "The current transaction has been rolled back due to an error. \n\r" + transactionEx.Message;
MessageBox.Show(status, "Error Message:");
alreadyCaught = true;
throw;
}
}发布于 2012-03-16 07:22:50
我假设由于事务的原因,只有在事务提交之后才会进行处理,因此在此之后才会引发事件。
https://stackoverflow.com/questions/9729504
复制相似问题