FANDOM


Alta de formatos de grabaciónEditar

Para facilitar la tarea de los usuarios de la base de datos vamos a crear un programa que permita realizar operaciones con sus diferentes tablas. El siguiente es el código del formulario para dar de alta formatos de grabación:

using System;
using System.Windows.Forms;
using System.Data.Odbc;

namespace MyFormProject
{
  class MainForm : System.Windows.Forms.Form
  {
    private System.Windows.Forms.Label label;
    private System.Windows.Forms.Button cmdGuardar;
    private System.Windows.Forms.TextBox txtNombre;
    private System.Windows.Forms.TextBox txtDescripción;
    private System.Windows.Forms.Label label2;
    public MainForm()
    {
      InitializeComponent();
    }

    // THIS METHOD IS MAINTAINED BY THE FORM DESIGNER
    // DO NOT EDIT IT MANUALLY! YOUR CHANGES ARE LIKELY TO BE LOST
    void InitializeComponent() {
      this.label2 = new System.Windows.Forms.Label();
      this.txtDescripción = new System.Windows.Forms.TextBox();
      this.txtNombre = new System.Windows.Forms.TextBox();
      this.cmdGuardar = new System.Windows.Forms.Button();
      this.label = new System.Windows.Forms.Label();
      this.SuspendLayout();
      //
      // label2
      //
      this.label2.AutoSize = true;
      this.label2.Location = new System.Drawing.Point(8, 48);
      this.label2.Name = "label2";
      this.label2.Size = new System.Drawing.Size(67, 16);
      this.label2.TabIndex = 3;
      this.label2.Text = "Descripción:";
      //
      // txtDescripción
      //
      this.txtDescripción.Location = new System.Drawing.Point(8, 64);
      this.txtDescripción.Name = "txtDescripción";
      this.txtDescripción.TabIndex = 4;
      this.txtDescripción.Text = "";
      //
      // txtNombre
      //
      this.txtNombre.Location = new System.Drawing.Point(8, 24);
      this.txtNombre.Name = "txtNombre";
      this.txtNombre.Size = new System.Drawing.Size(56, 20);
      this.txtNombre.TabIndex = 2;
      this.txtNombre.Text = "";
      //
      // cmdGuardar
      //
      this.cmdGuardar.Location = new System.Drawing.Point(8, 88);
      this.cmdGuardar.Name = "cmdGuardar";
      this.cmdGuardar.Size = new System.Drawing.Size(56, 23);
      this.cmdGuardar.TabIndex = 0;
      this.cmdGuardar.Text = "Guardar";
      this.cmdGuardar.Click += new System.EventHandler(this.CmdGuardarClick);
      //
      // label
      //
      this.label.AutoSize = true;
      this.label.Location = new System.Drawing.Point(8, 8);
      this.label.Name = "label";
      this.label.Size = new System.Drawing.Size(48, 16);
      this.label.TabIndex = 1;
      this.label.Text = "Nombre:";
      //
      // MainForm
      //
      this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
      this.ClientSize = new System.Drawing.Size(114, 114);
      this.Controls.Add(this.txtDescripción);
      this.Controls.Add(this.label2);
      this.Controls.Add(this.txtNombre);
      this.Controls.Add(this.label);
      this.Controls.Add(this.cmdGuardar);
      this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
      this.Name = "MainForm";
      this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
      this.Text = "Nuevo soporte";
      this.Load += new System.EventHandler(this.MainFormLoad);
      this.ResumeLayout(false);
    }

    [STAThread]
    public static void Main(string[] args)
    {
      Application.Run(new MainForm());
    }
    void CmdGuardarClick(object sender, System.EventArgs e)
    {

      string sNombre=txtNombre.Text;
      string sDescripción=txtDescripción.Text;

      if(sNombre==""){
        MessageBox.Show("Indique un nombre.");
        return;
      }

      if(sDescripción==""){
        MessageBox.Show("Indique una descripción.");
        return;
      }

      string sConsulta=
        "INSERT INTO "+
          "soporte(nombre,descripcion) "+
        "VALUES("+
          "'"+sNombre+"',"+
          "'"+sDescripción+"'"+
        ");";

      string sCon="DSN=videoteca";
      OdbcConnection oCon=new OdbcConnection();
      oCon.ConnectionString=sCon;
      oCon.Open();

      OdbcCommand oCmd=new OdbcCommand();
      oCmd.Connection=oCon;
      oCmd.CommandText=sConsulta;
      oCmd.ExecuteNonQuery();

    }

    void MainFormLoad(object sender, System.EventArgs e)
    {

    }

  }
}

Alta de películasEditar

El alta de las películas se puede hacer de forma sencilla utilizando un formulario. Para evitar errores en la introducción de los datos, tanto el género como el soporte se seleccionarán de sendas listas desplegables. El código de este formulario es el siguiente:

using System;
using System.Windows.Forms;
using System.Data.Odbc;

namespace MyFormProject
{
  class MainForm : System.Windows.Forms.Form
  {
    private System.Windows.Forms.Label label3;
    private System.Windows.Forms.Label label2;
    private System.Windows.Forms.TextBox txtTítulo;
    private System.Windows.Forms.Label label;
    private System.Windows.Forms.ComboBox lstGéneros;
    private System.Windows.Forms.ComboBox lstSoportes;
    private System.Windows.Forms.Button cmdGuardar;
    public MainForm()
    {
      InitializeComponent();
    }

    // THIS METHOD IS MAINTAINED BY THE FORM DESIGNER
    // DO NOT EDIT IT MANUALLY! YOUR CHANGES ARE LIKELY TO BE LOST
    void InitializeComponent() {
      this.cmdGuardar = new System.Windows.Forms.Button();
      this.lstSoportes = new System.Windows.Forms.ComboBox();
      this.lstGéneros = new System.Windows.Forms.ComboBox();
      this.label = new System.Windows.Forms.Label();
      this.txtTítulo = new System.Windows.Forms.TextBox();
      this.label2 = new System.Windows.Forms.Label();
      this.label3 = new System.Windows.Forms.Label();
      this.SuspendLayout();
      //
      // cmdGuardar
      //
      this.cmdGuardar.Location = new System.Drawing.Point(8, 128);
      this.cmdGuardar.Name = "cmdGuardar";
      this.cmdGuardar.TabIndex = 6;
      this.cmdGuardar.Text = "Guardar";
      this.cmdGuardar.Click += new System.EventHandler(this.CmdGuardarClick);
      //
      // lstSoportes
      //
      this.lstSoportes.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
      this.lstSoportes.Location = new System.Drawing.Point(8, 104);
      this.lstSoportes.Name = "lstSoportes";
      this.lstSoportes.Size = new System.Drawing.Size(121, 21);
      this.lstSoportes.TabIndex = 5;
      //
      // lstGéneros
      //
      this.lstGéneros.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
      this.lstGéneros.Location = new System.Drawing.Point(8, 64);
      this.lstGéneros.Name = "lstGéneros";
      this.lstGéneros.Size = new System.Drawing.Size(121, 21);
      this.lstGéneros.TabIndex = 3;
      //
      // label
      //
      this.label.AutoSize = true;
      this.label.Location = new System.Drawing.Point(8, 8);
      this.label.Name = "label";
      this.label.Size = new System.Drawing.Size(35, 16);
      this.label.TabIndex = 0;
      this.label.Text = "Título:";
      //
      // txtTítulo
      //
      this.txtTítulo.Location = new System.Drawing.Point(8, 24);
      this.txtTítulo.Name = "txtTítulo";
      this.txtTítulo.TabIndex = 1;
      this.txtTítulo.Text = "";
      //
      // label2
      //
      this.label2.AutoSize = true;
      this.label2.Location = new System.Drawing.Point(8, 48);
      this.label2.Name = "label2";
      this.label2.Size = new System.Drawing.Size(45, 16);
      this.label2.TabIndex = 2;
      this.label2.Text = "Género:";
      //
      // label3
      //
      this.label3.AutoSize = true;
      this.label3.Location = new System.Drawing.Point(8, 88);
      this.label3.Name = "label3";
      this.label3.Size = new System.Drawing.Size(47, 16);
      this.label3.TabIndex = 4;
      this.label3.Text = "Soporte:";
      //
      // MainForm
      //
      this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
      this.ClientSize = new System.Drawing.Size(138, 154);
      this.Controls.Add(this.cmdGuardar);
      this.Controls.Add(this.lstSoportes);
      this.Controls.Add(this.label3);
      this.Controls.Add(this.lstGéneros);
      this.Controls.Add(this.label2);
      this.Controls.Add(this.txtTítulo);
      this.Controls.Add(this.label);
      this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
      this.Name = "MainForm";
      this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
      this.Text = "Nueva película";
      this.Load += new System.EventHandler(this.MainFormLoad);
      this.ResumeLayout(false);
    }

    [STAThread]
    public static void Main(string[] args)
    {
      Application.Run(new MainForm());
    }

    void CargarGéneros(){

      string sCmd;
      sCmd=
        "SELECT id,nombre "+
        "FROM genero;";

      string sCon="DSN=videoteca";

      OdbcConnection oCon=new OdbcConnection();
      oCon.ConnectionString=sCon;
      oCon.Open();

      OdbcCommand oCmd=new OdbcCommand();
      oCmd.Connection=oCon;
      oCmd.CommandText=sCmd;

      OdbcDataReader oReader;
      oReader=oCmd.ExecuteReader();

      long iId=0;
      string sNombre="";

      while(oReader.Read()){
        iId=(long)oReader.GetValue(0);
        sNombre=(string)oReader.GetValue(1);
        lstGéneros.Items.Add(sNombre+" ("+iId+")");
      }

      oCon.Close();

      lstGéneros.SelectedIndex=0;

    }

    void CargarSoportes(){

      string sCmd;
      sCmd=
        "SELECT id,nombre "+
        "FROM soporte;";

      string sCon="DSN=videoteca";

      OdbcConnection oCon=new OdbcConnection();
      oCon.ConnectionString=sCon;
      oCon.Open();

      OdbcCommand oCmd=new OdbcCommand();
      oCmd.Connection=oCon;
      oCmd.CommandText=sCmd;

      OdbcDataReader oReader;
      oReader=oCmd.ExecuteReader();

      long iId=0;
      string sNombre="";

      while(oReader.Read()){
        iId=(long)oReader.GetValue(0);
        sNombre=(string)oReader.GetValue(1);
        lstSoportes.Items.Add(sNombre+" ("+iId+")");
      }

      oCon.Close();

      lstSoportes.SelectedIndex=0;

    }

    void MainFormLoad(object sender, System.EventArgs e)
    {

      CargarGéneros();
      CargarSoportes();

    }

    void CmdGuardarClick(object sender, System.EventArgs e)
    {

      string sTítulo=txtTítulo.Text;
      if(sTítulo==""){
        MessageBox.Show(
          "Indique un título.");
        return;
      }

      int iParéntesis=0;
      int sLongitud=0;
      int sCaracteres=0;

      string sGénero=lstGéneros.SelectedItem.ToString();
      iParéntesis=sGénero.LastIndexOf("(")+1;
      sLongitud=sGénero.Length;
      sCaracteres=sLongitud-iParéntesis-1;
      int iIdGénero=0;
      iIdGénero=Convert.ToInt16(sGénero.Substring(iParéntesis,sCaracteres));

      string sSoporte=lstSoportes.SelectedItem.ToString();
      iParéntesis=sSoporte.LastIndexOf("(")+1;
      sLongitud=sSoporte.Length;
      sCaracteres=sLongitud-iParéntesis-1;
      int iIdSoporte=0;
      iIdSoporte=Convert.ToInt16(sSoporte.Substring(iParéntesis,sCaracteres));

      string sConsulta=
        "INSERT INTO "+
          "pelicula(titulo,idgenero,idsoporte) "+
        "VALUES("+
          "'"+sTítulo+"',"+
          +iIdGénero+","+
          +iIdSoporte+
        ");";

      string sCon="DSN=videoteca";
      OdbcConnection oCon=new OdbcConnection();
      oCon.ConnectionString=sCon;
      oCon.Open();

      OdbcCommand oCmd=new OdbcCommand();
      oCmd.Connection=oCon;
      oCmd.CommandText=sConsulta;
      oCmd.ExecuteNonQuery();

      oCon.Close();

    }

  }

}

Enlaces interesantesEditar

Los siguientes enlaces pueden resultar un complemento interesante a los expuesto durante este capítulo:

El contenido de la comunidad está disponible bajo CC-BY-SA a menos que se indique lo contrario.