का निपटारा नहीं किया गया है मुझे लेनदेन में एकाधिक डेटाबेस प्रश्नों को लपेटने के लिए TransactionScope
का उपयोग करने में समस्या हो रही है, मैं बैचसाइज 500 के साथ एसक्लबल्ककॉपी का उपयोग कर रहा हूं। जब मैंने बैच बढ़ाया connection
ब्लॉक के बाहरत्रुटि - वर्तमान कनेक्शन से जुड़े लेनदेन को पूरा कर लिया गया है लेकिन
using (var scope = new TransactionScope())
{
using (var connection = (SqlConnection)customerTable.OpenConnection())
{
var table1BulkCopy = new SqlBulkCopy(connection)
{
BatchSize = BATCH_SIZE,
DestinationTableName = TableName1
};
table1BulkCopy.WriteToServer(table1DataTable);
var table2BulkCopy = new SqlBulkCopy(connection)
{
BatchSize = BATCH_SIZE,
DestinationTableName = TableName2
};
table2BulkCopy.WriteToServer(table2DataTable);
var table3BulkCopy = new SqlBulkCopy(connection)
{
BatchSize = BATCH_SIZE,
DestinationTableName = TableName3
};
table1BulkCopy.WriteToServer(table3DataTable);
var table4BulkCopy = new SqlBulkCopy(connection)
{
BatchSize = BATCH_SIZE,
DestinationTableName = TableName4
};
table4BulkCopy.WriteToServer(table4DataTable);
scope.Complete();
}
}
यहाँ और अधिक जानकारी क्यों:
यह एक अच्छा arcticle है: तो फिर machine.config में आप velue गुण सेट करना चाहिए? कॉल को उपयोग ब्लॉक में अंतिम कथन के रूप में रखना बहुत अच्छा अभ्यास है। [विधि के बारे में अधिक जानकारी] (https://msdn.microsoft.com/es-es/library/system.transactions.transactionscope.complete (v = vs.110) .aspx) – Angel
इससे मदद मिली। आवंटित –