13 diciembre 2006

C# y xml

En dias pasados instale el visual c# express de Microsoft (nadie es perfecto jejeje), y para empezar me programe un directorio telefonico pero utilizando XML para almacenar los contactos y en realidad me agrado, aunque el codigo no esta muy optimizado en cierta forma es funcional, de momento aqui les dejo el pantallazo y el codigo, espero no sea muy criticado el hecho de haber abordado esto con Mono, pero recuerdo que solo es un ejemplo de prueba con Visual C# express, aunque no se ha perdido la esencia ya que seguimos utilizando C#.



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;



namespace WindowsApplication1
{
public partial class frmppal : Form
{
DataSet archivoXML;
DataGrid Grid;
public frmppal()
{
InitializeComponent();
}



private void frmppal_Load(object sender, EventArgs e)
{
Grid = new DataGrid();
Grid.Name = "Grid";
Grid.Size = new Size(200, 150);
Grid.Location = new Point(0, 50);
Grid.Dock = DockStyle.Fill;
pgrid.Controls.Add(Grid);



//crear un objeto para estilos en el Datagrid
DataGridTableStyle estilo = new DataGridTableStyle();
estilo.MappingName = "CONTACTO";
estilo.BackColor = Color.LightGray;
estilo.AlternatingBackColor = Color.LightSteelBlue;
estilo.ForeColor = Color.Black;
estilo.LinkColor = Color.Black;

//Crear objetos del tipo DataGridTextBoxColumn
//para cada columna de la tabla del Datagrid
DataGridTextBoxColumn columna = new DataGridTextBoxColumn();



//Configurar cada columna
//Esta es la primera columna
columna = new DataGridTextBoxColumn();
//columna.TextBox.MaxLength = 50;
columna.Alignment = HorizontalAlignment.Left;
columna.HeaderText = "Nombre del contacto";
//columna del Dataset enlazada con esta columna del Datagrid
columna.MappingName = "NOMBRE";
columna.Width = 280;
//texto que se muestra cuando la columna tiene valor null
columna.NullText = "";
//añadir la columna a los estilos del Datagrid
estilo.GridColumnStyles.Add(columna);
//Direccion
columna = new DataGridTextBoxColumn();
//columna.TextBox.MaxLength = 50;
columna.Alignment = HorizontalAlignment.Left;
columna.HeaderText = "Direccion";
//columna del Dataset enlazada con esta columna del Datagrid
columna.MappingName = "DIRECCION";
columna.Width = 190;
//texto que se muestra cuando la columna tiene valor null
columna.NullText = "";
//añadir la columna a los estilos del Datagrid
estilo.GridColumnStyles.Add(columna);



//CARGO
columna = new DataGridTextBoxColumn();
//columna.TextBox.MaxLength = 50;
columna.Alignment = HorizontalAlignment.Left;
columna.HeaderText = "Cargo";
//columna del Dataset enlazada con esta columna del Datagrid
columna.MappingName = "CARGO";
columna.Width = 190;
//texto que se muestra cuando la columna tiene valor null
columna.NullText = "";
//añadir la columna a los estilos del Datagrid
estilo.GridColumnStyles.Add(columna);



//GRUPO
columna = new DataGridTextBoxColumn();
//columna.TextBox.MaxLength = 50;
columna.Alignment = HorizontalAlignment.Left;
columna.HeaderText = "Grupo";
//columna del Dataset enlazada con esta columna del Datagrid
columna.MappingName = "GRUPO";
columna.Width = 190;
//texto que se muestra cuando la columna tiene valor null
columna.NullText = "";
//añadir la columna a los estilos del Datagrid
estilo.GridColumnStyles.Add(columna);



//LETRA
columna = new DataGridTextBoxColumn();
//columna.TextBox.MaxLength = 50;
columna.Alignment = HorizontalAlignment.Left;
columna.HeaderText = "Letra";
//columna del Dataset enlazada con esta columna del Datagrid
columna.MappingName = "LETRA";
columna.Width = 50;
//texto que se muestra cuando la columna tiene valor null
columna.NullText = "";
//añadir la columna a los estilos del Datagrid
estilo.GridColumnStyles.Add(columna);
//FAX
columna = new DataGridTextBoxColumn();
//columna.TextBox.MaxLength = 50;
columna.Alignment = HorizontalAlignment.Left;
columna.HeaderText = "Fax";
//columna del Dataset enlazada con esta columna del Datagrid
columna.MappingName = "FAX";
columna.Width = 90;
//texto que se muestra cuando la columna tiene valor null
columna.NullText = "";
//añadir la columna a los estilos del Datagrid
estilo.GridColumnStyles.Add(columna);
//EMAIL
columna = new DataGridTextBoxColumn();
//columna.TextBox.MaxLength = 50;
columna.Alignment = HorizontalAlignment.Left;
columna.HeaderText = "Correo Electronico";
//columna del Dataset enlazada con esta columna del Datagrid
columna.MappingName = "EMAIL";
columna.Width = 190;
//texto que se muestra cuando la columna tiene valor null
columna.NullText = "";
//añadir la columna a los estilos del Datagrid
estilo.GridColumnStyles.Add(columna);



//crear un objeto para estilos en el Datagrid
DataGridTableStyle estiloTelefono = new DataGridTableStyle();
estiloTelefono.MappingName = "TELEFONO";
estiloTelefono.BackColor = Color.Beige;
estiloTelefono.AlternatingBackColor = Color.AliceBlue;



//NUMERO
columna = new DataGridTextBoxColumn();
//columna.TextBox.MaxLength = 50;
columna.Alignment = HorizontalAlignment.Left;
columna.HeaderText = "Numero Telefonico";
//columna del Dataset enlazada con esta columna del Datagrid
columna.MappingName = "NUMERO";
columna.Width = 300;
//texto que se muestra cuando la columna tiene valor null
columna.NullText = "";
//añadir la columna a los estilos del Datagrid
estiloTelefono.GridColumnStyles.Add(columna);
//TIPO
columna = new DataGridTextBoxColumn();
//columna.TextBox.MaxLength = 50;
columna.Alignment = HorizontalAlignment.Left;
columna.HeaderText = "Tipo de Telefono";
//columna del Dataset enlazada con esta columna del Datagrid
columna.MappingName = "TIPO";
columna.Width = 180;
//texto que se muestra cuando la columna tiene valor null
columna.NullText = "";
//añadir la columna a los estilos del Datagrid
estiloTelefono.GridColumnStyles.Add(columna);
//ANOTACION
columna = new DataGridTextBoxColumn();
//columna.TextBox.MaxLength = 50;
columna.Alignment = HorizontalAlignment.Left;
columna.HeaderText = "Acerca del Telefono";
//columna del Dataset enlazada con esta columna del Datagrid
columna.MappingName = "DESCRIBE";
columna.Width = 220;
//texto que se muestra cuando la columna tiene valor null
columna.NullText = "";
//añadir la columna a los estilos del Datagrid
estiloTelefono.GridColumnStyles.Add(columna);



Grid.TableStyles.Add(estilo);
Grid.TableStyles.Add(estiloTelefono);
}



private void salirToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}



private void abrirToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenFileDialog fo = new OpenFileDialog();
fo.InitialDirectory = Environment.CurrentDirectory + "\\";
fo.Filter = "xml Archivos (*.xml)*.xml";
fo.RestoreDirectory = true;
if (fo.ShowDialog() == DialogResult.OK)
{
if (fo.OpenFile() != null)
{
archivoXML = new DataSet();
archivoXML.ReadXml(fo.FileName);
Grid.CaptionText = fo.FileName;
Grid.SetDataBinding(archivoXML, "CONTACTO");
//Grid.Update();
}
}
}



private void guardarToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
//escribir el DataSet al archivo XML
archivoXML.WriteXml(Grid.CaptionText);
archivoXML.Clear();
archivoXML.ReadXml(Grid.CaptionText);
MessageBox.Show("Datos Guardados", "Aviso al usuario", MessageBoxButtons.OK);
}
catch(Exception pollo)
{
MessageBox.Show("Error","Aviso al usuario", MessageBoxButtons.OK);
}



}



private void acercaDeDirectorioToolStripMenuItem_Click(object sender, EventArgs e)
{
frmacerce frmacerca = new frmacerce();
frmacerca.ShowDialog();
}
}
}


Cualquier comentario es bienvenido, si desean todos los archivos del proyecto, dejen su comentario y se los hare llegar.

No hay comentarios.: