private static void ExecuteDeleteProgramsSqlServerCommand(IEnumerable<int> channelIds, SqlConnection aConnection,
SqlTransaction aTransaction, int aDelay)
{
int aCounter = 0;
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.CommandText =
"DELETE FROM Program WHERE idChannel = @idChannel";
sqlCmd.Parameters.Add("idChannel", SqlDbType.Int);
try
{
sqlCmd.Connection = aConnection;
sqlCmd.Transaction = aTransaction;
// Prepare the command since we will reuse it quite often
// sqlCmd.Prepare(); <-- this would need exact param field length definitions
}
catch (Exception ex)
{
Log.Info("BusinessLayer: ExecuteDeleteProgramsSqlServerCommand - Prepare caused an Exception - {0}", ex.Message);
}
foreach (int idChannel in channelIds)
{
sqlCmd.Parameters["idChannel"].Value = idChannel;
try
{
// Finally insert all our data
sqlCmd.ExecuteNonQuery();
aCounter++;
// Avoid I/O starving
if (aCounter % 2 == 0)
{
Thread.Sleep(aDelay);
}
}
catch (Exception ex)
{
Log.Error("BusinessLayer: ExecuteDeleteProgramsSqlServerCommand error - {0}, {1}", ex.Message, ex.StackTrace);
}
}
return;
}