private static void SendSalesOrderDetail(ADOM9Dataset.SalesOrderDetailRow Row) { int send_rows = 0; //Calculamos porque una vez lancemos update perdemos visibilidad del cambio bool deletion = Row.RowState == DataRowState.Deleted; //Ambito de using grande por si debemos usar adaptador en concurrency exception using (SalesOrderDetailTableAdapter OrderDetailTabAdpt = new SalesOrderDetailTableAdapter()) { try { send_rows = OrderDetailTabAdpt.Update(Row); Console.WriteLine("Registros OrderDetail enviados: {0}", send_rows); ReSyncLocalData(OrderDetailTabAdpt, Row.SalesOrderID, deletion); } catch (DBConcurrencyException e) { Console.WriteLine("ERROR de concurrencia. Detalle: {0}", e.Message); Console.WriteLine("Marque X si desea resincronizar con BD: "); if (Console.ReadLine().ToLower() == "x") { ReSyncLocalData(OrderDetailTabAdpt, Row.SalesOrderID, deletion); } ; } catch (Exception e) { Console.WriteLine("ERROR desconocido. Detalle: {0}", e.Message); } } }
private static void ReSyncLocalData(ADOM9Dataset.SalesOrderDetailRow Row) { }