• Miércoles 24 de Abril de 2024, 15:00

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - +Onis

Páginas: [1]
1
C# / Re:DataSet?
« en: Miércoles 31 de Agosto de 2011, 09:24 »
En el titulo del post , indique DATASET,,,,queria decir DATATABLE..

Gracias.

2
C# / DataSet?
« en: Martes 30 de Agosto de 2011, 11:40 »
Hola, ante todo gracias por leer este mensaje,…ya hace tiempo que mantengo una lucha con este programa, el cual recoge   un XML de una tabla de SQL, lo desglosa e inserta los campos necesarios en una o varias tablas de ORACLE.
Demomento, en lo que veis de código(es una version mini del programa grande), recojo un solo XML desde un id concreto de operación y un id concreto de tabla…lo que querria es poder automatizar este select y solo tener que especificarle el idtabla,,,y que él solito vaya cogiendo todos los xml con el idtabla=122, en este caso,,y los vaya insertando en la tabla de oracle,,,en vez de ir 1 por 1 a manija concretandole el idoperacion. Me supongo que para ello seria necesario un “datatable”, pero no entiendo la mecánica, si me podeis enseñar como, lo agradeceria enormemente.
MUCHAS GRACIAS.



Código: C#
  1. namespace TO_REC
  2. {
  3.     public partial class Form1 : Form
  4.     {
  5.         public Form1()
  6.         {
  7.             InitializeComponent();
  8.         }
  9.  
  10.         private static readonly string cnnStrTPV =
  11.            ConfigurationManager.ConnectionStrings["xTrelaTPVConnectionString"].ConnectionString;
  12.  
  13.         System.Data.OracleClient.OracleConnection conn =
  14.             new System.Data.OracleClient.OracleConnection();
  15.  
  16.         int idtabla;
  17.         long Id;
  18.         string sql = "";
  19.  
  20.         System.Collections.ArrayList ListaPedidos =
  21.                new System.Collections.ArrayList();
  22.  
  23.          //Instanciamos el objeto de la estructura
  24.           CabPedido CPedido         =  new CabPedido();  
  25.           PedidoDetalle PDetalle    =  new PedidoDetalle();
  26.  
  27.  
  28.         private void RecogerXML()
  29.         {
  30.  
  31.             XmlDocument doc1 = new XmlDocument();
  32.            
  33.             SqlConnection cnn = new SqlConnection(cnnStrTPV);
  34.  
  35.             cnn.Open();
  36.  
  37.             LoadXml1(cnn, doc1);
  38.  
  39.             cnn.Close();
  40.  
  41.             doc1.Save("C:\\Users\\dnonis\\Desktop\\temp\\OutputXml1.xml");
  42.            
  43.         }
  44.  
  45.  
  46.  
  47.         protected bool LoadXml1(SqlConnection cnn, XmlDocument doc1)
  48.         {
  49.             //Leemos el campo serialización(XML) de la bbdd.
  50.  
  51.  
  52.             idtabla = 122;//pedidostiendas
  53.             Id = //100019014084;
  54.                  //100163019855;
  55.                   1001310122429;
  56.                  //100152014221;
  57.  
  58.             sql = @"SELECT Serializacion
  59.                    FROM xTrelaTPV..OPERACIONES
  60.                    WHERE IdOperacion =" + Id +
  61.                    "and idtabla=" + idtabla + "";
  62.  
  63.             SqlCommand cm = new SqlCommand(sql, cnn);
  64.             using (SqlDataReader dr = cm.ExecuteReader())
  65.             {
  66.                 if (dr.Read())
  67.                 {
  68.                     SqlXml MiXml = dr.GetSqlXml(dr.GetOrdinal("Serializacion"));
  69.                     doc1.LoadXml(MiXml.Value);
  70.                     return true;
  71.                 }
  72.                 else
  73.                 {
  74.                     return false;
  75.                 }
  76.             }
  77.         }
  78.  
  79.         public void GetCampos_PedidoTienda()
  80.         {
  81.             XmlDocument xDoc = new XmlDocument();//XmlDocument nos permite editar el XML
  82.             //La ruta del documento XML permite rutas relativas
  83.             //respeto del ejecutable!
  84.  
  85.             xDoc.Load("C:/Users/dnonis/Desktop/temp/OutputXml1.xml");//ruta del archivo xml
  86.  
  87.             XmlNodeList pedidostiendas =
  88.                 xDoc.GetElementsByTagName("PedidoTienda");//idtabla=122-->PedidosTiendas
  89.  
  90.  
  91.             foreach (XmlElement nodo in pedidostiendas)
  92.             {
  93.  
  94.                
  95.                 CPedido.IdPedidoTienda = Convert.ToUInt64(nodo.GetElementsByTagName("IdPedidoTienda")[0].InnerText);//nodo xsi.nil
  96.  
  97.                 CPedido.IdentidadOrigenPedido = Convert.ToInt32(nodo.GetElementsByTagName("IdEntidadOrigenPedido")[0].InnerText);
  98.  
  99.                 CPedido.FechaPedido = nodo.GetElementsByTagName("FechaPedido")[0].InnerText;
  100.  
  101.                 CPedido.CodigoBarras = nodo.GetElementsByTagName("CodigoBarras")[0].InnerText;
  102.  
  103.                 CPedido.IdDivisa = Convert.ToInt32(nodo.GetElementsByTagName("IdDivisa")[0].InnerText);
  104.  
  105.                 CPedido.IdTicket = nodo.GetElementsByTagName("IdTicket")[0].InnerText;
  106.  
  107.                 CPedido.Comodin2 = nodo.GetElementsByTagName("Comodin2")[0].InnerText;
  108.  
  109.                 CPedido.Comodin8 = nodo.GetElementsByTagName("Comodin8")[0].InnerText;
  110.  
  111.                 CPedido.IdEmpleado = nodo.GetElementsByTagName("IdEmpleado")[0].InnerText;
  112.  
  113.                
  114.                 ListaPedidos.Add(CPedido);
  115.              
  116.             }
  117.  
  118.              XmlNodeList pedidostiendasDetalleCollection =
  119.                 xDoc.GetElementsByTagName("PedidoTiendaDetalleCollection");
  120.                 XmlNodeList PedidoTiendaDetalle =
  121.                   ((XmlElement)pedidostiendasDetalleCollection[0]).GetElementsByTagName("PedidoTiendaDetalle");
  122.            
  123.  
  124.                 foreach (XmlElement nodo1 in PedidoTiendaDetalle)
  125.                 {
  126.  
  127.                     PDetalle.IdPedidoTienda1 = Convert.ToUInt64(nodo1.GetElementsByTagName("IdPedidoTienda")[0].InnerText);
  128.                    
  129.                     PDetalle.Linea = Convert.ToInt32(nodo1.GetElementsByTagName("Linea")[0].InnerText);
  130.                    
  131.                     PDetalle.IdTipoPedido = Convert.ToInt32(nodo1.GetElementsByTagName("IdTipoPedido")[0].InnerText);
  132.                    
  133.                     PDetalle.IdEntidadDestinoPedido = Convert.ToInt32(nodo1.GetElementsByTagName("IdEntidadDestinoPedido")[0].InnerText);
  134.                    
  135.                     PDetalle.FechaPrevistaEntregaEnTienda = nodo1.GetElementsByTagName("FechaPrevistaEntregaEnTienda")[0].InnerText;
  136.                    
  137.                     PDetalle.FechaEfectivaEntregaEnTienda = nodo1.GetElementsByTagName("FechaEfectivaEntregaEnTienda")[0].InnerText;
  138.                    
  139.                     PDetalle.IdArticuloVariante = nodo1.GetElementsByTagName("IdArticuloVariante")[0].InnerText;
  140.                    
  141.                     PDetalle.Unidades = nodo1.GetElementsByTagName("Unidades")[0].InnerText;
  142.                    
  143.                     PDetalle.UnidadesServidas = nodo1.GetElementsByTagName("UnidadesServidas")[0].InnerText;
  144.                    
  145.                     PDetalle.UnidadesCanceladas = nodo1.GetElementsByTagName("UnidadesCanceladas")[0].InnerText;
  146.                    
  147.                     PDetalle.PrecioVenta = nodo1.GetElementsByTagName("PrecioVenta")[0].InnerText;
  148.                    
  149.                     PDetalle.CodigoBarras = nodo1.GetElementsByTagName("CodigoBarras")[0].InnerText;
  150.                    
  151.                     PDetalle.IdPrioridadPedido = Convert.ToInt32(nodo1.GetElementsByTagName("IdPrioridadPedido")[0].InnerText);
  152.  
  153.                     if (PDetalle.IdReserva == null) { PDetalle.IdReserva = Convert.ToUInt32(nodo1.GetElementsByTagName("IdReserva")[0].InnerText); }
  154.  
  155.                     if (PDetalle.IdValija == null)  { PDetalle.IdValija = Convert.ToUInt32(nodo1.GetElementsByTagName("IdValija")[0].InnerText); }
  156.  
  157.                     if (PDetalle.IdEstadoPedido == null) { PDetalle.IdEstadoPedido = Convert.ToInt32(nodo1.GetElementsByTagName("IdEstadoPedido")[0].InnerText); }
  158.  
  159.                     PDetalle.notas = nodo1.GetElementsByTagName("Observaciones")[0].InnerText;
  160.  
  161.  
  162.                 ListaPedidos.Add(PDetalle);
  163.  
  164.                 }
  165.         }
  166.  
  167.         public void InsertPedidosTotalOracle()
  168.         {
  169.  
  170.             conn.ConnectionString =
  171.                    "Data Source=DEVELOP_ORASRVDEV03;" + //schema bbdd
  172.                    "User ID=xxxxx;" +                   //usuario
  173.                    "Password=xxxxxxxxx";    //password
  174.  
  175.             conn.Open();//--abrimos conexion
  176.  
  177.             //Declaro una variable de tipo command del oracle
  178.             System.Data.OracleClient.OracleCommand MiComando = new System.Data.OracleClient.OracleCommand();
  179.             System.Data.OracleClient.OracleCommand MiComando2= new System.Data.OracleClient.OracleCommand();
  180.  
  181.            
  182.             /*OracleTransaction transaction1;
  183.             OracleTransaction transaction2;*/
  184.  
  185.             ////////-------------------
  186.             System.Data.OracleClient.OracleParameter var1 = new System.Data.OracleClient.OracleParameter();
  187.             var1.OracleType = System.Data.OracleClient.OracleType.UInt32;
  188.            
  189.             if (CPedido.IdTicket == "") { var1.Value = Convert.ToUInt64(0); }
  190.             else if (CPedido.IdTicket != "") { var1.Value = Convert.ToUInt64(CPedido.IdTicket); }
  191.             else { var1.Value = Convert.ToUInt32(0); }
  192.             ////////-------------------
  193.             System.Data.OracleClient.OracleParameter var2 = new System.Data.OracleClient.OracleParameter();
  194.             var2.OracleType = System.Data.OracleClient.OracleType.Int32;
  195.            
  196.             if (CPedido.Comodin2 == "") { var2.Value = Convert.ToInt32(0); }
  197.             else if (CPedido.Comodin2 != "") { var2.Value = Convert.ToInt32(CPedido.Comodin2); }
  198.             else { var2.Value = Convert.ToUInt32(0); }
  199.             ////////-------------------
  200.             System.Data.OracleClient.OracleParameter var3 = new System.Data.OracleClient.OracleParameter();
  201.             var3.OracleType = System.Data.OracleClient.OracleType.UInt32;
  202.            
  203.             if (CPedido.IdEmpleado == "") { var3.Value = Convert.ToUInt64(0); }
  204.             else if (CPedido.IdEmpleado != "") { var3.Value = Convert.ToUInt64(CPedido.IdEmpleado); }
  205.             else { var3.Value = Convert.ToUInt32(0); }
  206.             ////////-------------------
  207.             System.Data.OracleClient.OracleParameter var4 = new System.Data.OracleClient.OracleParameter();
  208.             var4.OracleType = System.Data.OracleClient.OracleType.VarChar;
  209.  
  210.             if (PDetalle.FechaPrevistaEntregaEnTienda == "") { var4.Value = "null"; }
  211.             else { var4.Value = Convert.ToDateTime(PDetalle.FechaPrevistaEntregaEnTienda); }
  212.             ////////-------------------
  213.             System.Data.OracleClient.OracleParameter var5 = new System.Data.OracleClient.OracleParameter();
  214.             var5.OracleType = System.Data.OracleClient.OracleType.VarChar;
  215.  
  216.             if (PDetalle.FechaEfectivaEntregaEnTienda == "") { var5.Value = "null"; }
  217.             else { var5.Value = Convert.ToDateTime(PDetalle.FechaEfectivaEntregaEnTienda); }
  218.             ////////-------------------
  219.            
  220.  
  221.             MiComando.Parameters.Clear();
  222.  
  223.            /* // Start a local transaction
  224.             transaction2 = conn.BeginTransaction(IsolationLevel.ReadCommitted);
  225.             // Assign transaction object for a pending local transaction
  226.              MiComando2.Transaction = transaction2;
  227.             */
  228.             try
  229.             {
  230.                 string numTPV=Convert.ToString(CPedido.IdPedidoTienda);
  231.                 string numTPVsbtr= numTPV.Substring(7,2);
  232.  
  233.                 //string numTicket = Convert.ToString(CPedido.IdTicket);
  234.                 //string numTicketsbtr = numTicket.Substring(10, (numTPV.Length));
  235.                
  236.  
  237.                 string oracle = "Insert into TO_REC_PEDIDOS_TIENDAS_CAB" +
  238.                                 "(CODIGO_EMPRESA,NUMERO_PEDIDO,TIENDA_ORIGEN,FECHA_PEDIDO,"+
  239.                                 "CODIGO_BARRAS_PEDIDO,CODIGO_DIVISA," +
  240.                                 "NUMERO_TPV,NUMERO_TIQUET,CLIENTE_DESTINO,PEDIDO_ORIGINAL_XTRELA," +
  241.                                 "CODIGO_TRABAJADOR,PERSONA_PEDIDO)" +
  242.                                 "VALUES('1234D',"+CPedido.IdPedidoTienda+"," +CPedido.IdentidadOrigenPedido+ ",'"+
  243.                                 Convert.ToDateTime(CPedido.FechaPedido)+"','"+CPedido.CodigoBarras+"',"+CPedido.IdDivisa+ ","+
  244.                                 Convert.ToInt32(numTPVsbtr)+","+var1.Value+",'EJEMPLO',"+
  245.                                 var2.Value+","+var3.Value+",'"+CPedido.Comodin8+"')";
  246.  
  247.  
  248.                 string oracle_= "Insert into TO_REC_PEDIDOS_TIENDAS_LIN" +
  249.                                 "(CODIGO_EMPRESA,NUMERO_PEDIDO,NUMERO_LINEA,TIPO_PEDIDO," +
  250.                                 "CLIENTE_DESTINO,FECHA_ENTREGA_PREVISTA,FECHA_ENTREGA_REAL,"+
  251.                                 "CODIGO_ARTICULO,UNIDADES_PEDIDAS,UNIDADES_SERVIDAS,UNIDADES_CANCELADAS,"+//,"+
  252.                                 "PRECIO_VENTA,CODIGO_BARRAS_SOBRE,PRIORIDAD_PEDIDO,"+
  253.                                 "NUMERO_RESERVA,NUMERO_VALIJA,STATUS_PEDIDO,"+
  254.                                 "OBSERVACIONES)"+
  255.                                 "VALUES('1234D',"+PDetalle.IdPedidoTienda1+","+PDetalle.Linea+",'"+
  256.                                 PDetalle.IdTipoPedido+"','"+PDetalle.IdEntidadDestinoPedido+"','"+
  257.                                 var4.Value+"','"+var5.Value+"','"+
  258.                                 PDetalle.IdArticuloVariante+"','"+(PDetalle.Unidades)+"','"+
  259.                                 (PDetalle.UnidadesServidas)+"','"+(PDetalle.UnidadesCanceladas)+"','"+
  260.                                 PDetalle.PrecioVenta+"','"+PDetalle.CodigoBarras+"',"+PDetalle.IdPrioridadPedido+","+
  261.                                 PDetalle.IdReserva+","+PDetalle.IdValija+","+
  262.                                 PDetalle.IdEstadoPedido+","+PDetalle.notas+")";
  263.                
  264.                
  265.                
  266.                 MiComando = new OracleCommand(oracle, conn);
  267.                 MiComando.ExecuteNonQuery();
  268.  
  269.                 MiComando2 = new OracleCommand(oracle_, conn);
  270.                 MiComando2.ExecuteNonQuery();
  271.                
  272.                 //transaction2.Commit();
  273.  
  274.                 MessageBox.Show("Ejecución realizada con éxito", "INFO",
  275.                    MessageBoxButtons.OK, MessageBoxIcon.Information);
  276.  
  277.                
  278.             }
  279.             catch (Exception err)
  280.             {
  281.                
  282.                 //transaction2.Rollback();
  283.  
  284.                 MessageBox.Show("Error..." + err.Message, "ERROR",
  285.                   MessageBoxButtons.OK, MessageBoxIcon.Error);
  286.  
  287.                 MessageBox.Show("Para más información consulte con su Administrador");
  288.  
  289.             }
  290.  
  291.             conn.Close();//--cerramos conexión
  292.  
  293.  
  294.             this.Close();//cerramos y salimos de la aplicación
  295.  
  296.         }
  297.  
  298.  
  299.             public class CabPedido //--> .:Oracle:. "TO_REC_PEDIDOS_TIENDAS_CAB"
  300.         {
  301.  
  302.             //Codigo_Empresa
  303.             public ulong IdPedidoTienda;
  304.             public int IdentidadOrigenPedido;
  305.             public string FechaPedido;
  306.             public string CodigoBarras;
  307.             public int IdDivisa;//tinyint
  308.             public string IdTicket;//bigint
  309.             //cliente_destino
  310.             public string Comodin2;
  311.             public string Comodin8;//nvarchar(100)
  312.             public string IdEmpleado;//bigint
  313.             //Fecha_Grabacion
  314.         }
  315.  
  316.  
  317.          
  318.              public class PedidoDetalle //--> "TO_REC_PEDIDOS_TIENDAS_LIN"
  319.         {
  320.             //Codigo_Empresa
  321.             public ulong IdPedidoTienda1;
  322.             public ulong IdPedidoTiendaDetalle;//¿¿??
  323.             public int Linea;
  324.             public int IdTipoPedido;
  325.             public int IdEntidadDestinoPedido;
  326.             public string FechaPrevistaEntregaEnTienda;//DATETIME
  327.             public string FechaEfectivaEntregaEnTienda;//DATETIME
  328.             //fecha real de entrega a cliente
  329.             public string IdArticuloVariante;
  330.             public string Unidades;//Numeric(11,4)
  331.             public string UnidadesServidas;//Numeric(11,4)
  332.             public string UnidadesCanceladas;//Numeric(11,4)
  333.             public string PrecioVenta;//money
  334.             public string CodigoBarras;
  335.             public int IdPrioridadPedido;
  336.             public long IdReserva;//long
  337.             public long IdValija;//long
  338.             public int IdEstadoPedido;
  339.             public string notas;
  340.             //Fecha_Grabacion
  341.         }
  342.  
  343.         private void button4_Click(object sender, EventArgs e)
  344.         {
  345.             RecogerXML();
  346.             GetCampos_PedidoTienda();
  347.             InsertPedidosTotalOracle();
  348.  
  349.  
  350.             this.Close();
  351.  
  352.         }
  353.     }
  354. }
  355.  
  356.  

3
C# / Re: recoger campos y valores de un XML y pasarlo a un datatable
« en: Jueves 14 de Julio de 2011, 09:20 »
Hola! perdona no pretendia dar prisa, primero las cosas de cada uno, no hay problema ;)

pues he hecho un arreglo, en vez de tener 3 estructuras, he creado 1 total que engloba las tres y asi me ahorro poner tres foreach con uno voy tirando,,,quiza es una manera menos ortodoxa, pero m sirve igual.

Si quieres aportar mejjores maneras de hacerlo, encantado de aprender  ;)

Muchas Gracias!

4
C# / Re: recoger campos y valores de un XML y pasarlo a un datatable
« en: Miércoles 13 de Julio de 2011, 09:46 »
no hay respuesta? :(

5
C# / Re: recoger campos y valores de un XML y pasarlo a un datatable
« en: Viernes 8 de Julio de 2011, 15:39 »
Directamente engancho todo el código que asi creo que nos evitaremos que os pierda... la cosa:
-como veis al inicio del codigo recojo 3 xmls diferentes...más adelante de cada uno de esos XML
recojo un campo(en realidad seran muchas de cada uno,,,pero mejor simplificarlo ya que no es lo importante)
y los meto en las variables de la estructura que le pertoque.

La parte que no entiendo, es como hago (en los foreach) para que pueda trabajar con las 3 variables, para realizar el insert
en la tabla de oracle,,,,,

Espero haberme explicado suficientemente bien. GRACIASSS!!!

Código: C#
  1.  
  2.  
  3. namespace prueba2
  4. {
  5.     public partial class Form1 : Form
  6.     {
  7.  
  8.  
  9.         public Form1()
  10.         {
  11.             InitializeComponent();
  12.         }
  13.         private static readonly string cnnStrTPV =
  14.             ConfigurationManager.ConnectionStrings["xTrelaTPVConnectionString"].ConnectionString;
  15.  
  16.         System.Data.OracleClient.OracleConnection conn =
  17.             new System.Data.OracleClient.OracleConnection();
  18.  
  19.  
  20.         int idtabla;
  21.         long Id;
  22.         string sql = "";
  23.  
  24.         //
  25.         System.Collections.ArrayList ListaPedidos =
  26.                new System.Collections.ArrayList();//definimos e instanciamos el objeto ArrayList
  27.         CabPedido CPedido = new CabPedido();
  28.  
  29.         System.Collections.ArrayList ListaTickets =
  30.                 new System.Collections.ArrayList();
  31.         CabTicket CTicket = new CabTicket();
  32.  
  33.         System.Collections.ArrayList ListaOperacionesT =
  34.                 new System.Collections.ArrayList();
  35.         CabOperac COperac = new CabOperac();
  36.  
  37.  
  38.         //Código encargado de realizar la conexion con la BBDD
  39.         //y de llamar al método que realiza la recogida del XML del campo de la bbdd
  40.         //y de crear el archivo xml en la ruta especificada
  41.  
  42.  
  43.         private void RecogerXML()
  44.         {
  45.  
  46.             XmlDocument doc1 = new XmlDocument();
  47.             XmlDocument doc2 = new XmlDocument();
  48.             XmlDocument doc3 = new XmlDocument();
  49.  
  50.             SqlConnection cnn = new SqlConnection(cnnStrTPV);
  51.  
  52.             cnn.Open();
  53.  
  54.             LoadXml1(cnn, doc1);
  55.             LoadXml2(cnn, doc2);
  56.             LoadXml3(cnn, doc3);
  57.  
  58.             cnn.Close();
  59.  
  60.             doc1.Save("C:\Users\davidms\Desktop\temp\OutputXml1.xml");
  61.             doc2.Save("C:\Users\davidms\Desktop\temp\OutputXml2.xml");
  62.             doc3.Save("C:\Users\davidms\Desktop\temp\OutputXml3.xml");
  63.  
  64.             MessageBox.Show("Archivo XML importado y creado correctamente", "Info",
  65.                 MessageBoxButtons.OK, MessageBoxIcon.Information);
  66.  
  67.         }
  68.      
  69.        
  70.  
  71.         //Método que recoge el campo xml de la bbdd
  72.         protected bool LoadXml1(SqlConnection cnn, XmlDocument doc1)
  73.         {
  74.             //Leemos el campo serialización(XML) de la bbdd.
  75.  
  76.  
  77.             idtabla = 122;//pedidostiendas
  78.             Id = 10001901982;
  79.  
  80.             sql = @"SELECT Serializacion
  81.                    FROM xTrelaTPV..OPERACIONES
  82.                    WHERE IdOperacion =" + Id +
  83.                    "and idtabla=" + idtabla + "";
  84.  
  85.  
  86.  
  87.             SqlCommand cm = new SqlCommand(sql, cnn);
  88.             /* cm.Parameters.Add(new SqlParameter("@IdOperacion", 10001901982));//id de ejemplo
  89.                  //10009801627));
  90.              //cm.Parameters.Add(new SqlParameter("@Idtabla", 122));//Idtabla PedidosTiendas
  91.                  //127));//id tabla OperacionesTalleresHistorico*/
  92.             using (SqlDataReader dr = cm.ExecuteReader())
  93.             {
  94.                 if (dr.Read())
  95.                 {
  96.                     SqlXml MiXml = dr.GetSqlXml(dr.GetOrdinal("Serializacion"));
  97.                     doc1.LoadXml(MiXml.Value);
  98.                     return true;
  99.                 }
  100.                 else
  101.                 {
  102.                     return false;
  103.                 }
  104.             }
  105.         }
  106.  
  107.         protected bool LoadXml2(SqlConnection cnn, XmlDocument doc2)
  108.         {
  109.  
  110.             idtabla = 127;//OperacionesTalleresHistorico
  111.             Id = 1001520165;
  112.  
  113.             sql = @"SELECT Serializacion
  114.                    FROM xTrelaTPV..OPERACIONES
  115.                    WHERE IdOperacion =" + Id +
  116.                    "and idtabla=" + idtabla + "";
  117.  
  118.  
  119.  
  120.             SqlCommand cm = new SqlCommand(sql, cnn);
  121.            
  122.             using (SqlDataReader dr = cm.ExecuteReader())
  123.             {
  124.                 if (dr.Read())
  125.                 {
  126.                     SqlXml MiXml = dr.GetSqlXml(dr.GetOrdinal("Serializacion"));
  127.                     doc2.LoadXml(MiXml.Value);
  128.                     return true;
  129.                 }
  130.                 else
  131.                 {
  132.                     return false;
  133.                 }
  134.             }
  135.         }
  136.  
  137.         protected bool LoadXml3(SqlConnection cnn, XmlDocument doc3)
  138.         {
  139.             //Leemos el campo serialización(XML) de la bbdd.
  140.  
  141.  
  142.  
  143.             idtabla = 135;//tickets
  144.             Id = 100098011891;
  145.  
  146.             sql = @"SELECT Serializacion
  147.                    FROM xTrelaTPV..OPERACIONES
  148.                    WHERE IdOperacion =" + Id +
  149.                    "and idtabla=" + idtabla + "";
  150.  
  151.  
  152.             SqlCommand cm = new SqlCommand(sql, cnn);
  153.            
  154.             using (SqlDataReader dr = cm.ExecuteReader())
  155.             {
  156.                 if (dr.Read())
  157.                 {
  158.                     SqlXml MiXml = dr.GetSqlXml(dr.GetOrdinal("Serializacion"));
  159.                     doc3.LoadXml(MiXml.Value);
  160.                     return true;
  161.                 }
  162.                 else
  163.                 {
  164.                     return false;
  165.                 }
  166.             }
  167.         }
  168.  
  169.         //Método encargado de sacar los campos del xml
  170.         //moviendose por los diferentes nodos del archivo
  171.         public void GetCampos_PedidoTienda()
  172.         {
  173.             XmlDocument xDoc = new XmlDocument();//XmlDocument nos permite editar el XML
  174.             //La ruta del documento XML permite rutas relativas
  175.             //respeto del ejecutable!
  176.  
  177.             xDoc.Load("C:/Users/davidms/Desktop/temp/OutputXml1.xml");//ruta del archivo xml
  178.  
  179.             XmlNodeList pedidostiendas =
  180.                 xDoc.GetElementsByTagName("PedidoTienda");//idtabla=122-->PedidosTiendas
  181.  
  182.  
  183.             foreach (XmlElement nodo in pedidostiendas)
  184.             {
  185.  
  186.                 int i = 0;
  187.  
  188.  
  189.                 CPedido.idPedidoTienda = Convert.ToUInt32(nodo.GetElementsByTagName("IdPedidoTienda")[i].InnerText);
  190.  
  191.                 if (CPedido.Pedido == null)
  192.                 {
  193.                     CPedido.Pedido = Convert.ToInt32(nodo.GetElementsByTagName("Pedido")[i].InnerText);//nodo xsi.nil
  194.                 }
  195.  
  196.                 CPedido.IdentidadOrigenPedido = Convert.ToInt32(nodo.GetElementsByTagName("IdEntidadOrigenPedido")[i].InnerText);
  197.                 CPedido.FechaPedido = (nodo.GetElementsByTagName("FechaPedido")[i].InnerText);
  198.                 CPedido.CodigoBarras = nodo.GetElementsByTagName("CodigoBarras")[i].InnerText;
  199.                 CPedido.IdDivisa = Convert.ToInt32(nodo.GetElementsByTagName("IdDivisa")[i].InnerText);
  200.                 CPedido.AvisarALaRecepcion = Convert.ToBoolean(nodo.GetElementsByTagName("AvisarAlaRecepcion")[i].InnerText);
  201.                 CPedido.SMS = Convert.ToBoolean(nodo.GetElementsByTagName("Sms")[i].InnerText);
  202.                 CPedido.AvisarALaRecepcionCompletaDelPedido = Convert.ToBoolean(nodo.GetElementsByTagName("AvisarAlaRecepcionCompletaDelPedido")[i].InnerText);
  203.                
  204.                 //Agrego la estructura o objeto CPedido a mi ArrayList
  205.                 ListaPedidos.Add(CPedido);
  206.                 //    
  207.  
  208.             }
  209.         }
  210.  
  211.         public void GetCampos_Ticket()
  212.         {
  213.             XmlDocument xDoc = new XmlDocument();//XmlDocument nos permite editar el XML
  214.             //La ruta del documento XML permite rutas relativas
  215.             //respeto del ejecutable!
  216.  
  217.             xDoc.Load("C:/Users/davidms/Desktop/temp/OutputXml2.xml");//ruta del archivo xml
  218.  
  219.             XmlNodeList Ptickets =
  220.                 xDoc.GetElementsByTagName("Ticket");//idtabla=135-->Tickets
  221.  
  222.  
  223.             foreach (XmlElement nodo in Ptickets)
  224.             {
  225.  
  226.                 int i = 0;
  227.  
  228.  
  229.                 //CTicket.IdEntidad  =Convert.ToInt32(nodo.GetElementsByTagName("IdEntidad")[i].InnerText);
  230.                 CTicket.CodigoBarras = (nodo.GetElementsByTagName("CodigoBarras")[i].InnerText);
  231.                 CTicket.NumeroTicket = Convert.ToInt32(nodo.GetElementsByTagName("NumeroTicket")[i].InnerText);
  232.                 CTicket.Fecha = (nodo.GetElementsByTagName("Fecha")[i].InnerText);//tabla de pruebas-> DATE ,,cambiado a VARCHAR
  233.  
  234.                 ListaTickets.Add(CTicket);
  235.  
  236.             }
  237.         }
  238.  
  239.  
  240.         public void GetCampos_OperacTaller()
  241.         {
  242.             XmlDocument xDoc = new XmlDocument();//XmlDocument nos permite editar el XML
  243.             //La ruta del documento XML permite rutas relativas
  244.             //respeto del ejecutable!
  245.  
  246.             xDoc.Load("C:/Users/davidms/Desktop/temp/OutputXml3.xml");//ruta del archivo xml
  247.  
  248.             XmlNodeList operaciontallerH =
  249.                 xDoc.GetElementsByTagName("OperacionTallerHistorico");//idtabla=127-->OperacionTallerHist
  250.  
  251.  
  252.  
  253.             foreach (XmlElement nodo in operaciontallerH)
  254.             {
  255.  
  256.                 int i = 0;
  257.  
  258.                 COperac.IdOperacionTaller = Convert.ToUInt32(nodo.GetElementsByTagName("IdOperacionTaller")[i].InnerText);
  259.                 COperac.DescripcionGeneradaReparacion = nodo.GetElementsByTagName("DescripcionGeneradaReparacion")[i].InnerText;
  260.                 COperac.FechaOperacionTaller = nodo.GetElementsByTagName("FechaOperacionTaller")[i].InnerText;
  261.  
  262.                 ListaOperacionesT.Add(COperac);
  263.  
  264.             }
  265.         }
  266.  
  267.  
  268.         public void InsertOracle()
  269.         {
  270.  
  271.             // TODO: Modify the connection string and include any
  272.             // additional required properties for your database.
  273.             conn.ConnectionString =
  274.                 "Data Source=DEVELOP_ORASRVDEV03;" + //schema bbdd
  275.                 "User ID=xxxxx;" +                   //usuario
  276.                 "Password=xxxxxxxxx";    //password
  277.  
  278.             conn.Open();//--abrimos conexion
  279.  
  280.  
  281.             //Declaro una variable de tipo command del oracle
  282.             System.Data.OracleClient.OracleCommand MiComando = new System.Data.OracleClient.OracleCommand();
  283.  
  284.  
  285.             foreach (CabPedido MiPedido in ListaPedidos)
  286.             {
  287.                 foreach (CabTicket MiTicket in ListaTickets)
  288.                 {
  289.                     foreach (CabOperac MiOperacion in ListaOperacionesT)
  290.                     {
  291.                         System.Data.OracleClient.OracleParameter var1;
  292.                         System.Data.OracleClient.OracleParameter var2;
  293.                         System.Data.OracleClient.OracleParameter var3;
  294.  
  295.                         var1 = new System.Data.OracleClient.OracleParameter();
  296.                         var2 = new System.Data.OracleClient.OracleParameter();
  297.                         var3 = new System.Data.OracleClient.OracleParameter();
  298.  
  299.                         var1.OracleType = System.Data.OracleClient.OracleType.Int32;
  300.                         var2.OracleType = System.Data.OracleClient.OracleType.VarChar;
  301.                         var3.OracleType = System.Data.OracleClient.OracleType.VarChar;
  302.  
  303.                         var1.Value = CPedido.idPedidoTienda;
  304.                         var2.Value = CTicket.CodigoBarras;
  305.                         var3.Value = COperac.FechaOperacionTaller;
  306.  
  307.                         MiComando.Parameters.Clear();
  308.  
  309.                         try
  310.                         {
  311.  
  312.                             string oracle = "Insert into TO_PRUEBAS" +
  313.                                             "(IDPEDIDO,CODIGOBARRAS,FECHA)" +
  314.                                             "values('" + var2.Value + "'," + var1.Value + ",'" +
  315.                                             (Convert.ToDateTime(var3.Value)) + "')";
  316.  
  317.  
  318.                             MiComando = new OracleCommand(oracle, conn);
  319.                             MiComando.ExecuteNonQuery();
  320.                             MessageBox.Show("Ejecución realizada con éxito", "INFO",
  321.                                 MessageBoxButtons.OK, MessageBoxIcon.Information);
  322.  
  323.                         }
  324.                         catch (Exception err)
  325.                         {
  326.                             MessageBox.Show("Error..." + err.Message, "ERROR",
  327.                                 MessageBoxButtons.OK, MessageBoxIcon.Error);
  328.  
  329.                         }
  330.                         conn.Close();//--cerramos conexión
  331.  
  332.  
  333.                         File.Delete("C:/Users/davidms/Desktop/temp/OutputXml1.xml");
  334.                         File.Delete("C:/Users/davidms/Desktop/temp/OutputXml2.xml");
  335.                         File.Delete("C:/Users/davidms/Desktop/temp/OutputXml3.xml");
  336.                     }
  337.                 }
  338.             }
  339.  
  340.         }
  341.  
  342.  
  343.         public class CabPedido //dentro el XML la primera tabla que
  344.                             //indica en este caso PEDIDOTIENDA
  345.         {
  346.             public long idPedidoTienda;
  347.             public int Pedido;
  348.             public int IdentidadOrigenPedido;
  349.             public string FechaPedido;//si lo pones a String y en el momento del Insert lo conviertes a date,,,mejor
  350.             public string CodigoBarras;
  351.             public int IdDivisa;  //tinyint
  352.             public bool AvisarALaRecepcion; //bit --> bool¿?
  353.             public bool SMS; //bit
  354.             public bool AvisarALaRecepcionCompletaDelPedido; //bit
  355.             public int IdCaja; //tinyint
  356.             public long IdTicket; //bigint
  357.             public int Comodin1;
  358.             public int Comodin2;
  359.             public int Comodin3;
  360.             public int Comodin4;
  361.             public bool Comodin5; //bit
  362.             public bool Comodin6; //bit
  363.             public string Comodin7; //nvarchar(10)
  364.             public string Comodin8; //nvarchar(100)
  365.             public DateTime Comodin9;
  366.             public DateTime Comodin10;
  367.             public long IdEmpleado; //bigint
  368.             public int IdEntidadDestinoPedido;
  369.             public long Comodin11; //bigint
  370.             public long Comodin12; //bigint
  371.             public int Comodin13; //money
  372.             public int Comodin14; //money
  373.             public bool Comodin15; //bit
  374.             public bool Comodin16; //bit
  375.             public DateTime Comodin17;
  376.             public DateTime Comodin18;
  377.             public string Comodin19;// nvarchar(300)
  378.             //public string Comodin20 //xml
  379.             public int Categoria1;
  380.             public int Categoria2;
  381.             public int Categoria3;
  382.             public int Categoria4;
  383.             public int Categoria5;
  384.  
  385.         }
  386.  
  387.         public class CabTicket//XML Tickets
  388.         {
  389.             public long IdTicket;//bigint
  390.             public int IdEntidad;
  391.             public int IdCaja;//tinyint
  392.             public int NumeroTicket;
  393.             public string Fecha;//DateTime
  394.             public int IdTipoTicket;
  395.             public int IdCajaSesion;
  396.             public long IdEmpleado;//bigint
  397.             public decimal PorcentajeDescuentoGlobal;//numeric(6,3)
  398.             public int ImporteDescuentoGlobal;//money
  399.             public bool emitido;//bit
  400.             public int IdEstadoTicket;
  401.             public string CodigoBarras;
  402.             public long IdTicketEnlace;
  403.             public int Comodin1;
  404.             public int Comodin2;
  405.             public int Comodin3;
  406.             public int Comodin4; //money
  407.             public bool Comodin5; //bit
  408.             public bool Comodin6; //bit
  409.             public string Comodin7; //nvarchar(10)
  410.             public string Comodin8; //nvarchar(100)
  411.             public DateTime Comodin9;
  412.             public DateTime Comodin10;
  413.             public long Comodin11; //bigint
  414.             public long Comodin12; //bigint
  415.             public int Comodin13; //money
  416.             public int Comodin14; //money
  417.             public bool Comodin15; //bit
  418.             public bool Comodin16; //bit
  419.             public DateTime Comodin17;
  420.             public DateTime Comodin18;
  421.             public string Comodin19;// nvarchar(300)
  422.             //public string Comodin20 //xml
  423.             //en la tabla hay 4 campos más, que no creo pinten nada..
  424.  
  425.  
  426.         }
  427.  
  428.         public class CabOperac //XML OperacionesTalleresHistorico
  429.         {
  430.             public long IdOperacionTallerHistorico;//bigint
  431.             public long IdOperacionTaller;//bigint
  432.             public string FechaOperacionTaller;//DATETIME
  433.             public string DescripcionGeneradaReparacion;
  434.             public bool SolicitarPresupuesto;//bit
  435.             public bool ViajaPieza;//bit
  436.             public int PresupuestoOperacionTaller;//money
  437.             public bool PresupuestoAceptadoPorCliente;//bit
  438.             public bool PresupuestoModificadoPorCentral;//bit
  439.             public bool PresupuestoModificadoPorTienda;//bit
  440.             public bool InformadoCliente;
  441.  
  442.         }
  443.  
  444.  
  445.         private void button1_Click(object sender, EventArgs e)
  446.         {
  447.             RecogerXML();
  448.         }
  449.  
  450.         private void button2_Click(object sender, EventArgs e)
  451.         {
  452.             GetCampos_PedidoTienda();
  453.             GetCampos_Ticket();
  454.             GetCampos_OperacTaller();
  455.  
  456.             InsertOracle();
  457.         }
  458.  
  459.         private void button3_Click(object sender, EventArgs e)
  460.         {
  461.             this.Close();
  462.         }
  463.     }
  464.  
  465. }
  466.  
  467.  
  468.  
  469.  

6
C# / Re: recoger campos y valores de un XML y pasarlo a un datatable
« en: Jueves 7 de Julio de 2011, 09:07 »
Me fué genial!! muchissimas gracias!! :D pronto apareceré con otra duda jejeje

7
C# / Re: recoger campos y valores de un XML y pasarlo a un datatable
« en: Viernes 1 de Julio de 2011, 09:30 »
Código: XML
  1.  
  2. <PedidoTienda>
  3.    
  4.   <IdPedidoTienda>100019019</IdPedidoTienda>
  5.   <Pedido xsi:nil="true" />
  6.   <IdEntidadOrigenPedido>19</IdEntidadOrigenPedido>
  7.   <FechaPedido>2011-04-01T18:14:09.86</FechaPedido>
  8.   <CodigoBarras>100019019</CodigoBarras>
  9.  
  10. </PedidoTienda>
  11.  
  12.  

Tanto este cachito de XML como el código anterior(de los anteriores msgs) está recortado, porque si tengo que poner todo el código no acabamos ni mañana xD

SALUDOS!

8
C# / Re: recoger campos y valores de un XML y pasarlo a un datatable
« en: Viernes 1 de Julio de 2011, 09:15 »
Mi intencion es solo esa, recoger campos del XML e insertarlos
Código: C#
  1.  
  2.  
  3.  private DataTable CreaTabla()
  4.         {
  5.             DataTable PedidoTienda = new DataTable();
  6.             PedidoTienda.Clear();
  7.            
  8.             PedidoTienda.Columns.Add("idPedidoTienda", typeof(string));
  9.             PedidoTienda.Columns.Add("Pedido", typeof(int));
  10.             PedidoTienda.Columns.Add("IdentidadOrigenPedido", typeof(int));
  11.             PedidoTienda.Columns.Add("FechaPedido", typeof(DateTime));
  12.             PedidoTienda.Columns.Add("CodigoBarras", typeof(string));
  13.  
  14.  return PedidoTienda;
  15.         }
  16.  
  17.  
  18.  

Código: C#
  1.  
  2. CabPedido CPedido = new CabPedido();
  3.             XmlNodeList pedidostiendas =
  4.                 xDoc.GetElementsByTagName("PedidoTienda");//idtabla=122-->PedidosTiendas
  5.  
  6.  foreach (XmlElement nodo in pedidostiendas)
  7.             {
  8.  
  9.                 int i = 0;
  10.  
  11.                                 CPedido.idPedidoTienda = Convert.ToUInt32(nodo.GetElementsByTagName("IdPedidoTienda") [i].InnerText);
  12.                                if (CPedido.Pedido == null)
  13.                 {
  14.                     CPedido.Pedido = Convert.ToInt32(nodo.GetElementsByTagName("Pedido")[i].InnerText);//nodo xsi.nil
  15.                 }
  16.                
  17.                 CPedido.IdentidadOrigenPedido = Convert.ToInt32(nodo.GetElementsByTagName("IdEntidadOrigenPedido")[i].InnerText);
  18.                 CPedido.FechaPedido = Convert.ToDateTime(nodo.GetElementsByTagName("FechaPedido")[i].InnerText);
  19.                 CPedido.CodigoBarras = nodo.GetElementsByTagName("CodigoBarras")[i].InnerText;
  20.  
  21.  DataTable miTabla;
  22.                 miTabla = CreaTabla();
  23.  
  24.                 DataRow getpedido = miTabla.NewRow();//definicion del datarow del tipo DataTable(miTabla-->PedidoTienda)
  25.  
  26.                 getpedido["idPedidoTienda"] = Convert.ToUInt32(nodo.GetElementsByTagName("IdPedidoTienda")[i].InnerText);
  27.                 getpedido["Pedido"]=CPedido.Pedido ;
  28.                 getpedido["IdentidadOrigenPedido"]=CPedido.IdentidadOrigenPedido ;
  29.                 getpedido["FechaPedido"]=CPedido.FechaPedido ;
  30.                 getpedido["CodigoBarras"]=CPedido.CodigoBarras ;
  31.  
  32. miTabla.Rows.Add(getpedido);
  33.  
  34.  

Código: C#
  1.  
  2.  public class CabPedido //dentro el XML la primera tabla que
  3.                                //indica en este caso PEDIDOTIENDA
  4.         {
  5.             public long idPedidoTienda;
  6.             public int Pedido;
  7.             public int IdentidadOrigenPedido;
  8.             public DateTime FechaPedido;
  9.             public String CodigoBarras;
  10.                
  11.  
  12.  

Bueno, he pasado la parte de codigo donde recojo los nodos y los metos en la tabla,,,pero tb uso una estrucutra,,,una de las dos creo que m sobra.... a ver si sabes orientarme minimamente, para recoger bien estas variables y poderlas usar en otra funcion que realice el INSERT en ORACLE(la conexion a oracle tb la tngo definida)
Muchas GRACIAS!!

9
C# / Re: recoger campos y valores de un XML y pasarlo a un datatable
« en: Viernes 1 de Julio de 2011, 00:15 »
Hola muchas gracias por responder! te cuento...

ya tengo cogidos los valores de los nodos del xml, pero sin chillnodes...directamente los cojo sin estos.. los he asignado a una estrucutra publica.... Luego he creado un datatable,, que m vendria a ser lo mismo que la estrucutra que he creado(creo q voy por una via muy lenta...),,,y he relacionado estructura con datatable ...


Con todo esto mi intencion es poder recoger los campos que saco del XML y poderlos meter en variables para usarlas en un INSERT en una tabla de Oracle...pero mestoy liando un monton..xD

10
C# / recoger campos y valores de un XML y pasarlo a un datatable
« en: Jueves 30 de Junio de 2011, 11:21 »
Buenas!! de antemano gracias, como siempre :)

querria saber, ya que no encuentro la suficiente documentacion explicita por internet, de como recoger campos y valores de un XML, y pasarlos a un datatable (para su posterior uso en una insercion de datos a oracle).

Cualquier ejemplo será bienvenido.

Muchisimas Gracias!

11
C# / Re: Pasar variables de un Form a otro
« en: Miércoles 29 de Junio de 2011, 17:16 »
muchas gracias!!! perdon por el formato ,,,a la proxima estará todo más legible.

En cuanto modifique todo como me comentais, os digo el que.

Muchisimas gracias a los dos(y a quien tb responda) y perdonad el parrafon :P

12
C# / Pasar variables de un Form a otro
« en: Miércoles 29 de Junio de 2011, 13:18 »
Hola a todos!! de primeras gracias a los que hagan el esfuerzo de leerlo y más a los que respondan.

Mi problema, aparte de q soy novato, es el hecho de pasar una variable que he capturado de un campo de un doc XML, y tratarlo en otro form para insertarlo en una tabla Oracle.

Os paso el código:

FORM1
-----------

namespace pruebaXML
{
public partial class Form1 : Form
{

public Form1()
{
InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)
{
RecogerXML_PedidoTienda();
}

private void button3_Click(object sender, EventArgs e)
{

MostrarCampos_PedidoTienda();

}

private void button2_Click(object sender, EventArgs e)
{
this.Close();
}

private void button4_Click(object sender, EventArgs e)
{
InsertarDatos f = new InsertarDatos();
f.ShowDialog();


}

//private static readonly string cnnStr = ConfigurationManager.ConnectionStrings["xTrelaIntegracionConnectionString"].ConnectionString;
private static readonly string cnnStrTPV = ConfigurationManager.ConnectionStrings["xTrelaTPVConnectionString"].ConnectionString;


//Código encargado de realizar la conexion con la bbdd
//y de llamar al método que realiza la recogida del XML del campo de la bbdd
//y de crear el archivo xml en la ruta especificada
private void RecogerXML_PedidoTienda()
{

XmlDocument doc = new XmlDocument();

SqlConnection cnn = new SqlConnection(cnnStrTPV);

cnn.Open();

LoadXml(cnn, doc);

cnn.Close();

doc.Save("C:\Users\davidma\Desktop\OutputXml.xml");

MessageBox.Show("Archivo XML importado y creado correctamente", "Info",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}

//Método que recoge el campo xml de la bbdd
protected bool LoadXml(SqlConnection cnn, XmlDocument doc)
{
//Leemos el campo serialización(XML) de la bbdd.
string sql = @"SELECT Serializacion
FROM xTrelaTPV..OPERACIONES
WHERE IdOperacion = @IdOperacion
AND idtabla=@idtabla";

SqlCommand cm = new SqlCommand(sql, cnn);
cm.Parameters.Add(new SqlParameter("@IdOperacion", 10001901982));//id de ejemplo
cm.Parameters.Add(new SqlParameter("@Idtabla", 122));//idtabla PedidosTiendas
using (SqlDataReader dr = cm.ExecuteReader())
{
if (dr.Read())
{
SqlXml MiXml = dr.GetSqlXml(dr.GetOrdinal("Serializacion"));
doc.LoadXml(MiXml.Value);
return true;
}
else
{
return false;
}
}
}


//Método encargado de sacar los campos del xml
//moviendose por los diferentes nodos del archivo
public void MostrarCampos_PedidoTienda() {
XmlDocument xDoc = new XmlDocument();//XmlDocument nos permite editar el XML
//La ruta del documento XML permite rutas relativas
//respecto del ejecutable!


xDoc.Load("C:/Users/davidma/Desktop/OutputXml.xml");//ruta del archivo xml
XmlNodeList pedidostiendas =
xDoc.GetElementsByTagName("PedidoTienda");//idtabla=122-->PedidosTiendas
//XmlNodeList lista =
//((XmlElement)pedidotienda[0]).GetElementsByTagName("tiendapedido");

string contenido;//variable fuera del bucle para poder hacer el return
//y llamarla desde otro form

foreach (XmlElement nodo in pedidostiendas)
{

int i = 0;

XmlNodeList nEntityState = nodo.GetElementsByTagName("EntityState");
XmlNodeList nCodigoBarras = nodo.GetElementsByTagName("CodigoBarras");


contenido = String.Format
("nEntityState={0}nCodigoBarras={1}",
nEntityState.InnerText,

nCodigoBarras.InnerText,


//-------------------------------------------------------------------
//-------------------------------------------------------------------




//separaciones para diferenciar los nodos(a la hora de sacarlo por pantalla)
//que a su vez son diferentes tablas...
string separacion = "<PedidoTienda>";
//end separaciones

string msg = (separacion + contenido);

MessageBox.Show(msg, "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);


// return contenido;//kitar si peta
}

}

}


FORM2
-----------

namespace pruebaXML
{
public partial class InsertarDatos : Form
{
public InsertarDatos()
{
InitializeComponent();

}


private void button1_Click(object sender, EventArgs e)
{
ConnectToOracle();//(OraSid,OraPass,OraUser);
}


public void ConnectToOracle()
{
System.Data.OracleClient.OracleConnection conn =
new System.Data.OracleClient.OracleConnection();

// TODO: Modify the connection string and include any
// additional required properties for your database.
conn.ConnectionString =
"Data Source=DEVELOP_ORASRVDEV03;"+//schema bbdd
"User ID=libra;"+ //usuario
"Password=libra521fordevelopers"; //password

try
{
conn.Open();
MessageBox.Show("Conexión realizada con éxito!","INFO",MessageBoxButtons.OK,MessageBoxIcon.Information);
// Insert code to process data.

//Declaro una variable de tipo command del oracle
System.Data.OracleClient.OracleCommand MiComando = new System.Data.OracleClient.OracleCommand();
//Declaro mis parametros que voy a utilizar
System.Data.OracleClient.OracleParameter EntityS;
System.Data.OracleClient.OracleParameter codigoB;

//Instanceo mis parametros
EntityS = new System.Data.OracleClient.OracleParameter();
codigoB = new System.Data.OracleClient.OracleParameter();

//Asigna a los parámetros los valores que serán almacenados
EntityS.OracleType = System.Data.OracleClient.OracleType.VarChar;
codigoB.OracleType = System.Data.OracleClient.OracleType.Int32;

//Le doy nombre a los parametros
EntityS.ParameterName = "Param1";
codigoB.ParameterName = "Param2";

//Declaro la variable "form" del tipo formulario
//para llamar a las variables del Xml
//--> Form1 coger = new Form1();

////////////////


//les digo de que tipo de parametros van a hacer.
//contenido.getstring();

// string entitystate = Form1.MostrarCampos_PedidoTienda(contenido);


//string EntityState1 = Form1.MostrarCampos_PedidoTienda(contenido.nEntityState);



//int i = 0;
//EntityState.Value = coger.nEntityState.Text.ToString();//variables(del xml) del otro form
//codigoB.Value = Int32.Parse(coger.nCodigoBarras.Text.ToString());// "


//Limpio los parametros que voy a utilizar evitando alguna basura...
MiComando.Parameters.Clear();

//agrego los parametros para la ejecucion del comando
MiComando.Parameters.Add(EntityS);
MiComando.Parameters.Add(codigoB);

//agrego el comando a ser ejecutado
MiComando.CommandText = "Insert into TO_PRUEBAS(EstadoEntidad,CodigoBarras)values(Param1,Param2)";


//simplemente y sencillamente abro la conexion ejecuto el comando
//y luego cierro la conexion
conn.Open();
MiComando.ExecuteNonQuery();
//MiComando.ExecuteOracleNonQuery();
//conn.Close();

}
catch
{
MessageBox.Show("Error al conectar/insertar datos a la base de datos","ERROR",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
finally
{
conn.Close();

}
}

private void button2_Click(object sender, EventArgs e)
{
this.Close();
MessageBox.Show("Conexión cerrada después de realizar tareas con éxito", "INFO", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

}

}
//}

-----------------------------------------------------------
-----------------------------------------------------------
Bueno llegado este punto, os comento....he borrado muchas variables para no hacerlo más engorroso, asi que solo he dejado 2 para hacer la prueba(obviamente en Oracle hay una tabla con campos vacios dond esperan estas variables).

La cosa es que, en el primer Form, recoge los campos del XML, los separa, y los mete en variables, vease nEntityState, y luego en "contenido"-->que en realidad este contenido es para juntarlo todo y sacarlo en un msg,,,supongo que no es necesario para realizar el return,,o si,, :S

Desde el Form2, se deben llamar a estas variables para poderlas insertar en la tabla,,,pero no se como trabajar con ellas desde otro form,,,he provado el tema del return pero m da error....
Espero hayais entendido toda la metodologia y m podais ayudar.

Muchisimas gracias!

Páginas: [1]