public static bool UpdateBulkBillingDetails(SqlCommand cmd, DataSources.dsData.BillingDetailsDataTable BulkTable) { bool outPut = false; try { SqlBulkCopy bulkCopy = new SqlBulkCopy(cmd.Connection); cmd.CommandTimeout = Managers.DataManager.ConnectionTimeout; bulkCopy.BulkCopyTimeout = Managers.DataManager.ConnectionTimeout; bulkCopy.ColumnMappings.Clear(); bulkCopy.ColumnMappings.Add("BillingDetailsId", "BillingDetailsId"); bulkCopy.ColumnMappings.Add("BillingDocument", "BillingDocument"); bulkCopy.ColumnMappings.Add("SoldToParty", "SoldToParty"); bulkCopy.ColumnMappings.Add("RouteNumber", "RouteNumber"); bulkCopy.ColumnMappings.Add("BillingDate", "BillingDate"); bulkCopy.ColumnMappings.Add("ConditionTypeId", "ConditionTypeId"); bulkCopy.ColumnMappings.Add("MaterialNumber", "MaterialNumber"); bulkCopy.ColumnMappings.Add("BillTypeId", "BillTypeId"); bulkCopy.ColumnMappings.Add("ReferenceDocumentN", "ReferenceDocumentN"); bulkCopy.ColumnMappings.Add("ActualInvoicedQuan", "ActualInvoicedQuan"); bulkCopy.ColumnMappings.Add("ConditionValue", "ConditionValue"); bulkCopy.ColumnMappings.Add("userin", "userin"); bulkCopy.ColumnMappings.Add("datein", "datein"); bulkCopy.DestinationTableName = BulkTable.TableName; bulkCopy.BatchSize = BulkTable.Count; //deleting data before saving new 1 var result = from row in BulkTable.AsEnumerable() group row by row.BillingDate into grp select new { BillingDate = grp.Key }; cmd.CommandText = "delete from BillingDetails where BillingDate = @BillingDate"; cmd.Parameters.Add(new SqlParameter("@BillingDate", SqlDbType.Date)); foreach (var item in result) { if (DevExpress.XtraSplashScreen.SplashScreenManager.Default.IsSplashFormVisible) DevExpress.XtraSplashScreen.SplashScreenManager.Default.SetWaitFormDescription("Deleting Day " + item.BillingDate.ToShortDateString()); System.Windows.Forms.Application.DoEvents(); cmd.Parameters["@BillingDate"].Value = item.BillingDate; cmd.ExecuteNonQuery(); } //saving bulk if (DevExpress.XtraSplashScreen.SplashScreenManager.Default.IsSplashFormVisible) DevExpress.XtraSplashScreen.SplashScreenManager.Default.SetWaitFormDescription("Saving Data .."); System.Windows.Forms.Application.DoEvents(); bulkCopy.WriteToServer(BulkTable); outPut = true; } catch (SqlException ex) { Logger.Error("Error while trying to save BillingDetails Bulk - " + ex.Message, ex); } return outPut; }