private static void SendSalesOrderHeader(ADOM9Dataset.SalesOrderHeaderRow 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 (SalesOrderHeaderTableAdapter OrderHeadTabAdpt = new SalesOrderHeaderTableAdapter()) { try { send_rows = OrderHeadTabAdpt.Update(Row); Console.WriteLine("Registros OrderHeader enviados: {0}", send_rows); ReSyncLocalData(OrderHeadTabAdpt, 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(OrderHeadTabAdpt, Row.SalesOrderID, deletion); } ; } catch (Exception e) { Console.WriteLine("ERROR desconocido. Detalle: {0}", e.Message); } } }
private static void ReSyncLocalData(SalesOrderDetailTableAdapter MainAdapter, int HeaderID, bool deletion) { int DetailReceived_rows = 0; int HeaderReceived_rows = 0; HeaderReceived_rows = MainAdapter.FillBySalesOrderID(DataADO.SalesOrderDetail, HeaderID); Console.WriteLine("Registros OrderHeader recibidos (resync): {0}", HeaderReceived_rows); using (SalesOrderHeaderTableAdapter SecondaryAdapter = new SalesOrderHeaderTableAdapter()) { DetailReceived_rows = deletion ? SecondaryAdapter.Fill(DataADO.SalesOrderHeader) : SecondaryAdapter.FillBySalesOrderID(DataADO.SalesOrderHeader, HeaderID); } Console.WriteLine("Registros OrderHeader recibidos (resync): {0}", DetailReceived_rows); }
private static void ADOShowOrderHeaders() { int counter = 0; string prompt_input = ""; if (DataADO.SalesOrderHeader.Rows.Count == 0) { using (SalesOrderHeaderTableAdapter OrderHeadTabAdpt = new SalesOrderHeaderTableAdapter()) { OrderHeadTabAdpt.Fill(DataADO.SalesOrderHeader); } } foreach (ADOM9Dataset.SalesOrderHeaderRow OrderHeader in DataADO.SalesOrderHeader.Rows) { Console.WriteLine("ID: {0} " + "\n\t- Fecha de pedido: {1} " + "\n\t- Núm pedido: {2} " + "\n\t- Núm cliente: {3} " + "\n\t- Importe total: {4} ", OrderHeader.SalesOrderID, OrderHeader.OrderDate, OrderHeader.IsNull("PurchaseOrderNumber") ? "----" : OrderHeader.PurchaseOrderNumber, OrderHeader.CustomerID, OrderHeader.TotalDue); counter++; if (counter % 10 == 0) { Console.Write("Introduzca X para salir. Si quiere 10 elementos siguientes, pulse una tecla: "); prompt_input = Console.ReadLine(); if (prompt_input.ToLower() == "x") { break; } else { continue; } } } }
private static int PickSalesOrderHeader() { int OrdID = -1; int received_rows = 0; ADOM9Dataset.SalesOrderHeaderRow SelOrdHeader; do { Console.Write("Introduzca identificador de Order Header: "); } while (!int.TryParse(Console.ReadLine(), out OrdID)); try { using (SalesOrderHeaderTableAdapter OrderHeaderTblAdpt = new SalesOrderHeaderTableAdapter()) { received_rows = OrderHeaderTblAdpt.FillBySalesOrderID(DataADO.SalesOrderHeader, OrdID); } } catch (Exception e) { Console.WriteLine("ERROR recuperando OrderHeader seleccionado. Detalles {0}", e.Message); OrdID = -1; } if (received_rows > 0) { SelOrdHeader = DataADO.SalesOrderHeader.FindBySalesOrderID(OrdID); Console.WriteLine("ID: {0} " + "\n\t- Fecha de pedido: {1} " + "\n\t- Núm pedido: {2} " + "\n\t- Núm cliente: {3} " + "\n\t- Importe total: {4} ", SelOrdHeader.SalesOrderID, SelOrdHeader.OrderDate, SelOrdHeader.IsNull("PurchaseOrderNumber") ? "----" : SelOrdHeader.PurchaseOrderNumber, SelOrdHeader.CustomerID, SelOrdHeader.TotalDue); } return(OrdID); }