• Domingo 22 de Diciembre de 2024, 14:21

Autor Tema:  Re: Textbox Multilinea  (Leído 1362 veces)

AnioN

  • Miembro MUY activo
  • ***
  • Mensajes: 339
    • Ver Perfil
Re: Textbox Multilinea
« en: Sábado 1 de Diciembre de 2007, 14:16 »
0
Tengo el siguiente problema. Necesito leer un xml y cargar una parte en el textbox multilinea. El xml lo genero en base a una tabla de una base de datos access. Lo genero y el resultado es el siguiente:

Citar
<?xml version="1.0"?>
<sistema>
      <id>1</id>
      <descripcion>A</descripcion>
      <id>2</id>
      <descripcion>B</descripcion>
      <id>3</id>
      <descripcion>C</descripcion>
      <id>4</id>
      <descripcion>D</descripcion>
      <id>5</id>
      <descripcion>E</descripcion>
      <id>6</id>
      <descripcion>F</descripcion>
</sistema>

EL codigo del programa es el siguiente:
Código: Text
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. using System.Data.OleDb;
  9. using System.Xml;
  10.  
  11. namespace Sistema2
  12. {
  13.     public partial class Form1 : Form
  14.     {
  15.         public Form1()
  16.         {
  17.             InitializeComponent();
  18.         }
  19.  
  20.         private const string m_strFileName = &#34;sistemas.xml&#34;;
  21.         private System.Data.OleDb.OleDbConnection cnn;
  22.         private OleDbCommand aCommand;
  23.         private OleDbDataReader aReader;
  24.  
  25.         private void Form1_Load(object sender, EventArgs e)
  26.         {
  27.             XmlTextWriter bankWriter = null;
  28.             bankWriter = new XmlTextWriter(m_strFileName, null);
  29.  
  30.             try
  31.             {
  32.                 bankWriter.Formatting = Formatting.Indented;
  33.                 bankWriter.Indentation = 6;
  34.                 bankWriter.Namespaces = false;
  35.  
  36.                 bankWriter.WriteStartDocument();
  37.  
  38.             }
  39.             catch (Exception e5)
  40.             {
  41.                 MessageBox.Show(e5.ToString());
  42.             }
  43.  
  44.  
  45.             cnn = new System.Data.OleDb.OleDbConnection();
  46.  
  47.             cnn.ConnectionString = @&#34;PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=sistemas.mdb&#34;;
  48.             cnn.Open();
  49.  
  50.             aCommand = new OleDbCommand(&#34;select * from T_Sistema&#34;, cnn);
  51.  
  52.             try
  53.             {
  54.                 bankWriter.WriteStartElement(&#34;&#34;, &#34;sistema&#34;, &#34;&#34;);
  55.  
  56.                 //create the datareader object to connect to table
  57.                 aReader = aCommand.ExecuteReader();
  58.  
  59.                 //Iterate throuth the database
  60.                 while (aReader.Read())
  61.                 {
  62.                     bankWriter.WriteStartElement(&#34;&#34;, &#34;id&#34;, &#34;&#34;);
  63.                     bankWriter.WriteString(aReader.GetInt32(0).ToString());
  64.                     bankWriter.WriteEndElement();
  65.  
  66.  
  67.                     bankWriter.WriteStartElement(&#34;&#34;, &#34;descripcion&#34;, &#34;&#34;);
  68.                     bankWriter.WriteString(aReader.GetString(1));
  69.                     bankWriter.WriteEndElement();
  70.  
  71.                     cmbListar.Items.Add(aReader.GetString(1));
  72.                 }
  73.  
  74.                 //close the reader
  75.                 aReader.Close();
  76.  
  77.                 //close the connection Its important.
  78.                 cnn.Close();
  79.             }
  80.  
  81.             //Some usual exception handling
  82.             catch (OleDbException ex)
  83.             {
  84.                 MessageBox.Show(ex.ToString());
  85.             }
  86.             finally
  87.             {
  88.                 if (bankWriter != null)
  89.                 {
  90.                     bankWriter.WriteEndElement();
  91.                     bankWriter.Flush();
  92.                     bankWriter.Close();
  93.                 }
  94.             }
  95.         }
  96.  
  97.         private void cmbListar_SelectedIndexChanged(object sender, EventArgs e)
  98.         {
  99.             int itemSel = cmbListar.SelectedIndex;
  100.             //txtDesc.Text = itemSel.ToString();
  101.  
  102.             XmlTextReader bankReader = null;
  103.             bankReader = new XmlTextReader (m_strFileName);
  104.  
  105.             txtDesc.Text = &#34;&#60;sistema&#62;&#34;;
  106.             while (bankReader.Read())
  107.             {
  108.                 if (bankReader.NodeType == XmlNodeType.Element)
  109.                 {
  110.                     if (bankReader.LocalName.Equals(&#34;id&#34;))
  111.                     {
  112.                         //txtDesc.Text = bankReader.ReadString();
  113.                     }
  114.                 }
  115.             
  116.             }
  117.  
  118.             txtDesc.Text += &#34;&#60;/sistema&#62;&#34;;
  119.         }
  120.     }
  121. }
  122.  

Lo que necesito terminar de hacer es segun lo que se seleccione en el combo se cargue en el text box desde el xml. Por ej:
Si se selecciona en el combobox la A, tiene que aparecer en el textbox lo siguiente.
Citar
<sistema>
      <id>1</id>
      <descripcion>A</descripcion>
</sistema>
Alguien me puede ayudar?, adjunto el proyecto entero con la base de datos.
Muchas Gracias.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

AnioN

  • Miembro MUY activo
  • ***
  • Mensajes: 339
    • Ver Perfil
Re: Textbox Multilinea
« Respuesta #1 en: Sábado 1 de Diciembre de 2007, 14:30 »
0
la parte de multilinea la pude solucionar de esta forma:

Código: Text
  1. txtDesc.Text += &#34;&#092;r&#092;n&#60;/sistema&#62;&#34;;
  2.  

me sigue faltando cargar la info del xml en el textbox. :(

AnioN

  • Miembro MUY activo
  • ***
  • Mensajes: 339
    • Ver Perfil
Re: Textbox Multilinea
« Respuesta #2 en: Domingo 2 de Diciembre de 2007, 11:58 »
0
ya lo pude solucionar. :) Gracias igual.