Docencia.fca.unam.mx



PRACTICA # 4: MICROSOFT VISUAL STUDIO 2005.- VISUAL C#

(Versión con Base de Datos Access 2007)

PROBLEMA:

Hacer una Base de Datos de Libros con los siguientes campos:

(Autor, titulo, subtitulo, materia, editorial, clasificación, precio, foto.)

Deberá ser un sistema con las siguientes opciones: .-

• DESPLIEGUE DE LIBROS

• INSERCCION DE REGISTROS DE LIBROS

• EDICION EN DATOS EN REGISTROS DE LIBROS

• BUSQUEDA SELECTIVA POR CLASIFICACION DEL LIBRO

• BAJAS DE REGISTROS DE LIBROS

CREAR LA SIGUIENTE BASE DE DATOS

Nombre de la Base de Datos: BIBLIO ruta: c:\BIBLIO.accdb

Tabla: libro

Campos:

clave autonumérico

autor texto

titulo texto

subtitulo texto

materia texto

editorial texto

clasificación texto

precio numéro doble

foto texto

|libro |

clave |autor |titulo |subtitulo |materia |editorial |clasificacion |precio |foto | |1 |Aho, Alfred V. |Estructuras de Datos y Algoritmos |Estructuras |Inftormatica II |Addison Wesley |QA45.455 |1500 |s/f | |2 |Joyanes Aguilar, Luis |Fundamentos de Programación |Algoritmos y Estructura de Datos |Informatica II |McGraw Hill |QA878.J2 |5000 |s/f | |3 |Ceballos, Francisco Javier |MicroSoft C# |Curso de Programacion |Algoritmos |Alfa Omega |QH34.C23 |2000 |s/f | |

CREAR UNA APLICACIÓN DE VISIAL C# (Archivo, nuevo proyecto, aplicación para Windows.- Nombre: bib01)

1.- CREAR UNA VENTANA DE DESPLIEGUE DE LIBROS

[pic]

CONTROLES:

• Colocar ahora en FORM1 un componente DATAGRIDVIEW con propiedades NAME=GRID1 y READONLY=TRUE

• Colocar ahora un componente BUTTON1 y en su evento ONCLIK poner el siguiente codigo:

private void button1_Click(object sender, EventArgs e)

{

// declarando objetos coneccion, adapter y dataset

OleDbConnection CANAL;

OleDbDataAdapter ORDEN;

DataSet TABLA;

// creando y enlazando coneccion a la base de datos

// para access 2007

CANAL = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\BIBLIO.accdb");

// (para acces 2003) CANAL = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\mibase.mdb");

ORDEN = new OleDbDataAdapter("select * from libro", CANAL);

// creando y cargando el dataset

TABLA = new DataSet();

ORDEN.Fill(TABLA, "libro");

// cargando y enlazando el DataGridView

GRID1.DataSource = TABLA;

GRID1.DataMember = "libro";

}

using System;

using System.Collections.Generic;

using ponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Data.OleDb;

Nota: agregar al principio esta librería para hacer la conexión de la Base de Datos

2.- HACER UNA APLICACIÓN DE INSERSION DE REGISTROS.- (Archivo, nuevo proyecto, aplicación para Windows.- Nombre: bib02)

[pic]

Controles.-

9 Label s

7 TextBox name=AUTOR, el que le corresponda

1 Button

Colocar ahora un componente BUTTON1 y en su evento ONCLIK poner el siguiente código:

// CONTADOR ES UNA VARIABLE GLOBAL

int cont = 0;

private void button1_Click(object sender, EventArgs e)

{

// creando y cargando coneccion y command

OleDbConnection CANAL;

OleDbCommand ORDEN;

// abriendo la coneccion o enlace

CANAL = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\BIBLIO.accdb");

// creando y cargando un objeto OLEDBCOMMAND

// instruccion sql insert into mitabla(listacampos) values(listadatos)

// @variable es una variable de tipo parametro

string q = "insert into libro(autor,titulo,subtitulo,materia,editorial,clasificacion,precio) values(@AUTOR,@TITULO,@SUBTITULO,@MATERIA,@EDITORIAL,@CLASI,@PRECIO)";

ORDEN = new OleDbCommand(q, CANAL);

ORDEN.Parameters.Add(new OleDbParameter("@AUTOR", OleDbType.VarWChar, 50));

ORDEN.Parameters["@AUTOR"].Value = AUTOR.Text;

ORDEN.Parameters.Add(new OleDbParameter("@TITULO", OleDbType.VarWChar, 50));

ORDEN.Parameters["@TITULO"].Value = TITULO.Text;

ORDEN.Parameters.Add(new OleDbParameter("@SUBTITULO", OleDbType.VarWChar, 50));

ORDEN.Parameters["@SUBTITULO"].Value = SUBTITULO.Text;

ORDEN.Parameters.Add(new OleDbParameter("@MATERIA", OleDbType.VarWChar, 50));

ORDEN.Parameters["@MATERIA"].Value = MATERIA.Text;

ORDEN.Parameters.Add(new OleDbParameter("@EDITORIAL", OleDbType.VarWChar, 50));

ORDEN.Parameters["@EDITORIAL"].Value = EDITORIAL.Text;

ORDEN.Parameters.Add(new OleDbParameter("@CLASI", OleDbType.VarWChar, 50));

ORDEN.Parameters["@CLASI"].Value = CLASI.Text;

ORDEN.Parameters.Add(new OleDbParameter("@PRECIO", OleDbType.Double));

ORDEN.Parameters["@PRECIO"].Value = PRECIO.Text;

ORDEN.Connection.Open();

ORDEN.ExecuteNonQuery();

ORDEN.Connection.Close();

// limpiando TEXTBOXS para otra inserccion

AUTOR.Text = " ";

TITULO.Text = " ";

SUBTITULO.Text = " ";

MATERIA.Text = " ";

EDITORIAL.Text = " ";

CLASI.Text = " ";

PRECIO.Text = " ";

// avisando inserccion

cont = cont + 1;

label9.Text = "Registro no.- " + cont.ToString() + " Insertado";

}

3.-EDICION DE DATOS DE REGISTROS DE LIBROS.- (Archivo, nuevo proyecto, aplicación para Windows.- Nombre: bib03)

[pic]

Controles.-

9 Label s

8 TextBox name=AUTOR, el que le corresponda

1 Button

Colocar ahora un componente BUTTON1 y en su evento ONCLIK poner el siguiente código:

private void button1_Click(object sender, EventArgs e)

{

// Objetos OLEDB que se ocupan

OleDbConnection CANAL;

OleDbCommand ORDEN;

CANAL = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\BIBLIO.accdb");

// Instruccion sql UPDATE

string q = "Update libro set autor=@AUTOR, titulo=@TITULO, subtitulo=@SUBTITULO, materia=@MATERIA, editorial=@EDITORIAL, clasificacion=@CLASI, precio=@PRECIO where clave=" + CLAVE.Text;

ORDEN = new OleDbCommand(q, CANAL);

ORDEN.Parameters.Add(new OleDbParameter("@AUTOR", OleDbType.VarWChar, 50));

ORDEN.Parameters["@AUTOR"].Value = AUTOR.Text;

ORDEN.Parameters.Add(new OleDbParameter("@TITULO", OleDbType.VarWChar, 50));

ORDEN.Parameters["@TITULO"].Value = TITULO.Text;

ORDEN.Parameters.Add(new OleDbParameter("@SUBTITULO", OleDbType.VarWChar, 50));

ORDEN.Parameters["@SUBTITULO"].Value = SUBTITULO.Text;

ORDEN.Parameters.Add(new OleDbParameter("@MATERIA", OleDbType.VarWChar, 50));

ORDEN.Parameters["@MATERIA"].Value = MATERIA.Text;

ORDEN.Parameters.Add(new OleDbParameter("@EDITORIAL", OleDbType.VarWChar, 50));

ORDEN.Parameters["@EDITORIAL"].Value = EDITORIAL.Text;

ORDEN.Parameters.Add(new OleDbParameter("@CLASI", OleDbType.VarWChar, 50));

ORDEN.Parameters["@CLASI"].Value = CLASI.Text;

ORDEN.Parameters.Add(new OleDbParameter("@PRECIO", OleDbType.Double));

ORDEN.Parameters["@PRECIO"].Value = PRECIO.Text;

ORDEN.Connection.Open();

ORDEN.ExecuteNonQuery();

ORDEN.Connection.Close();

// Limpiando TEXTBOXS para otra edicion

AUTOR.Text = " ";

TITULO.Text = " ";

SUBTITULO.Text = " ";

MATERIA.Text = " ";

EDITORIAL.Text = " ";

CLASI.Text = " ";

PRECIO.Text = " ";

// Avisando edicion

label9.Text = "REGISTRO EDITADO";

}

4.- BUSQUEDA SELECTIVA POR CLASIFICACION DEL LIBRO.- (Archivo, nuevo proyecto, aplicación para Windows.- Nombre: bib04)

[pic]

Controles.-

2 Label s

1TextBox name=CLASI

1 DATAGRIDVIEW con propiedades NAME=GRID1

Colocar ahora un componente BUTTON1 y en su evento ONCLIK poner el siguiente código:

private void button1_Click(object sender, EventArgs e)

{

// Objetos OLEDB que se ocupan

OleDbConnection CANAL;

DataSet TABLA;

OleDbDataAdapter ORDEN;

CANAL = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\BIBLIO.accdb");

string q = "select * from libro where clasificacion = @CLASI";

ORDEN = new OleDbDataAdapter(q, CANAL);

ORDEN.SelectCommand.Parameters.Add(new OleDbParameter("@CLASI", OleDbType.VarChar, 50));

ORDEN.SelectCommand.Parameters["@CLASI"].Value = CLASI.Text;

// Creando el dataset y cargandolo

TABLA = new DataSet();

ORDEN.Fill(TABLA, "libro");

// Cargando el datagridview

GRID1.DataSource = TABLA;

GRID1.DataMember = "libro";

}

5.- BAJAS DE REGISTROS DE LIBROS (Archivo, nuevo proyecto, aplicación para Windows.- Nombre: bib05)

[pic]

Controles.-

2 Label s

1TextBox name=CLAVE

1 button

Colocar ahora un componente BUTTON1 y en su evento ONCLIK poner el siguiente código:

private void button1_Click(object sender, EventArgs e)

{

// Objetos OLEDB que se ocupan

OleDbConnection CANAL;

OleDbCommand ORDEN;

CANAL = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\BIBLIO.accdb");

// Instruccion sql DELETE FROM TABLA WHERE CLAVE=DATO

string q = "delete from libro where clave=@CLAVE";

ORDEN = new OleDbCommand(q, CANAL);

ORDEN.Parameters.Add(new OleDbParameter("@CLAVE", OleDbType.Integer));

ORDEN.Parameters["@CLAVE"].Value = CLAVE.Text;

ORDEN.Connection.Open();

ORDEN.ExecuteNonQuery();

ORDEN.Connection.Close();

// Avisando

label2.Text = " REGISTRO ELIMINADO";

}

6.-INTEGRACION DEL SISTEMA EN UN SOLO PROYECTO: MENU PRINCIPAL (Archivo, nuevo proyecto, aplicación para Windows.- Nombre: bib00)

EN ESTE CASO TODAS LAS FORMAS SERAN AGREGADAS EN ESTE PROYECTO

PARA CADA BOTON DEFINIDO (se hace un solo proyecto)

[pic]

Proyecto, Agregar Windows Forms, Nombre: Form2.cs

EN Form2.cs se programa la aplicación de despligue de datos. Así sucesivamente con las aplicaciones siguientes.

[pic]

PARA CADA BOTON DE Form1.cs (forma del menú principal) LIGAR LAS FORMAS CON EL SIGUIENTE CODIGO.

Se construye el objeto y se muestra la ventana

private void button1_Click(object sender, EventArgs e)

{

Form2 ventana2 = new Form2();

ventana2.Show();

}

ASI SUCESIVAMENTE PARA LAS OTRAS APLICACIONES

Form3 ventana3 = new Form3();

ventana3.Show();

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download