Practica 7 Conexión a su base de datos. Optativa II



Documentos relacionados
Tutorial : Hacer Combos Dependientes tipo Departamento Ciudad en ASP. Net

Conexión SQL Server y C# (Consola)

GUÍA DE TRABAJO N 11 LENGUAJE C# Programación de Software Articulación SENA Grado 10 Ing. Néstor Raúl Suarez Perpiñan Página 2 de 11

GUÍA DE TRABAJO GRADO 11. Articulación SENA Programación de Software Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6

Creación de un sistema ABC

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS COORDINACION DE COMPUTACIÓN

Acceso a Base de Datos

UNIVERSIDAD LIBRE DE COLOMBIA FACULTAD INGENIERIA DE SISTEMAS ELECTIVA TECNICA II.NET Y SQL SERVER

3.- Desarrollo e implementación del sistema.

Día 2: Utilizando controles de datos en Visual Studio 2008.

GUIA PRACTICA 1 VISUAL C#.Net SQL SERVER 2012 MANTENIMIENTO DE UNA TABLA

GUÍA DE TRABAJO GRADO 11 Programación de. Software Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6

Célula UABC-Live.net. Universidad Autónoma. de Baja California. Facultad de Ciencias Químicas. e Ingeniería.

Bases de Datos Access y C#. Insert, select, update, delete. 1. Crea una base de Datos en Access

Video 2: Cómo Crear una plantilla para Generar Procedimientos Almacenados

1. crear la base de datos BANCO, dentro de ella crear las siguientes tablas y establecer la siguiente relación.

Práctica sobre compartición de instancias remotas.

Prof. Giovanni Francisco Sáenz Araica.

Tema: Desarrollo de aplicaciones con Visual Studio.net Parte II

INSTITUTO TECNOLÓGICO DE NUEVO LAREDO ING. EN SISTEMAS COMPUTACIONALES

Tema: Conexión a Base de Datos.

Programació amb C#.NET

PROGRAMACIÓN EN C#.NET 8.- Programación de Formas de Windows. Ing. Bruno López Takeyas

Programación de Consultas SQL ADO.Net LDP / DUOC-AV

Acceso a datos con ADO.NET 2.0 (sin asistentes)

Universitat de Lleida Escola Politècnica Superior Enginyeria Tècnica en Informàtica de Gestió. Trabajo Final de Carrera

Código fuente C# Código asociado al formulario Splash

Acceso a Datos. Visual Basic.NET 2005

Manejo de una Base de Datos Microsoft SQL Server. a través de Visual C #, vía instrucciones SQL.

TECNOLOGÍAS DE LA INFORMACIÓN APLICADAS AL DERECHO INMOBILIARIO REGISTRAL JURÍDICO ANEXO 1 DIAGRAMA ENTIDAD RELACIÓN

Laboratorio JDBC - Base de datos con Java

DOCUMENTACIÓN DE POWER BUILDER 11. CONSULTA DINAMICA Las consultas dinámicas se realizan cuando power builder no soporta una consulta SQL.

SGME Documento Adjunto. Manual de introducción al acceso a la base de datos. Andrés Moschini

ADO.NET con Base de datos SQL Server

Programación Orientada a Objetos II. La Plataforma JDBC

Repaso. Laboratorio Informix. Stored Procedures. Ejemplo. Creación de stored procedures. Sql en un Procedimiento

IMPLEMENTACIÓN DE UN PROTOTIPO DE SOFTWARE DE E-LEARNING PARA LA ENSEÑANZA DE SQLSERVER UTILIZANDO MICROSOFT SILVERLIGHT

LENGUAJE ESTRUCTURADO DE CONSULTAS SQL (2)

9- Procedimientos almacenados.

GUIA DE LABORATORIO N 9 B. (000Webhost Php- Para desarrollar en casa)

1. Bases de datos desde VB.Net 1.1 Introducción. Desde Vb Net 2005 se puede acceder a las siguientes bases de datos, utilizando las clases adecuadas.

Laboratorio Informix. Stored Procedures Triggers

Formato para prácticas de laboratorio

En este ejemplo también vamos a crear la capa Entidades que va a servir para modelar nuestra base de datos.

BASES DE DATOS AVANZADAS Transacciones en MYSQL

Programación de Consultas SQL ADO.Net LDP / DUOC-AV

Conectar Flash con Access usando MDM Zinc

6. PROGRAMACIÓN CON TRANSACT-SQL

UNIVERSIDAD DEL ISTMO CAMPUS IXTEPEC LIC. INFORMATICA GRUPO 508 PROCEDIMIENTOS ALMACENADOS EN SQL SERVER 2000

GUÍA DE TRABAJO N 7 LENGUAJE C# Educación Media Fortalecida Programación de Software Grado 11 Ing. Néstor Raúl Suarez Perpiñan Página 1 de 8

Anexo Nº 11 MANUAL DE INSTALACIÓN

Índice. iii. Objetivos... 24

Taller: Introducción a Windows Communication Foundation

BASES DE DATOS EN VISUAL BASIC ACCESS + SQL

GUÍA DE TRABAJO N 9 - LENGUAJES C# + SQL Educación Media Fortalecida Programación de Software GRADO 11 Ing. Néstor Raúl Suarez Perpiñan Página 1 de 8

USANDO SERVLETS EN UN SERVIDOR WEB RESIN

Programación de Consultas SQL ADO.Net LDP / DUOC-AV

PRÁCTICA Nº 16 CONEXIÓN A UNA BASE DE DATOS, INGRESO Y VISUALIZACIÓN DE REGISTROS

I.- Objetivo. II.- Introducción

Formato para prácticas de laboratorio

TUTORIAL APLICACIONES EVOLUTION CON ACTIVEX EVOLINK

GUÍA DE TRABAJO GRADO 11 Programación de. Software Ing. Néstor Raúl Suarez Perpiñan Página 1 de 8

TRANSACT-SQL, DISEÑO Y PROGRAMACIÓN DE BASES DE DATOS EN SQL SERVER 2008

PHP Y BASES DE DATOS. Introducción a SQL

Arquitectura y Diseño de Sistemas Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Primer Cuatrimestre de 2015

4- Uso de sentencias para el envió y extracción de datos

Programación de Aplicaciones Visuales II Ejercicio Paso a Paso: Aplicación para HelpDesk

Crear una interfaz gráfica con Visual C#.NET de manera básica Utilizar las sentencias de DML de base de datos en Visual C#.NET

Operación Edit, Delete, Update e Insert en un DataGrid: Parte I

MANUALITO MS-SQL SERVER

APUNTES: APLICACIONES WEB BASADAS EN PHP Y MYSQL Página 1 de 5

Conexión a Base de Datos.

Tutorial de Unity 3D Tema 52 Bases de Datos. Tutorial de Unity 3D. Bases de Datos

Programación Gambas 3 Prof: Mileti, P. Acceso a base de datos SQLite desde Gambas 3.

Guía práctica de introducción básica a JDBC

Dentro del.net los eventos se utilizan para notificar a nuestros objetos que se ha producido algún tipo de hecho al que nos hemos suscrito.

OBJETIVOS METODOLOGÍA PROCEDIMIENTO 1.- Trabajo con el servidor de bases de datos Sybase

Bases de Datos / Elementos de Bases de Datos Que es un Stored Procedure? Stored Procedures: Ventajas

TUTORIAL DESARROLLO DE APLICACIONES PARA EVOLUTION CON MS ACCESS

Base de datos Procedimientos Almacenados y Funciones

Mecanismos de acceso a datos usando ADO.NET

FIUBA Algoritmos y programación 3

UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA DE LA FUERZA ARMADA NACIONAL EXTENSIÓN BARQUISIMETO BARQUISIMETO ESTADO. LARA

Proyecto visual C# 2005 Express Edition: Imprimir Página 1 de 5

Diseño de bases de datos

E16 - Diseño de Sistemas de Bases de Datos Boletín 3

Administradores de Bases de Datos Studio.NET 2005 Y SQL Server Barrios

Base de Datos SQL Server. create database CRUD; use CRUD;

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS COORDINACION DE COMPUTACIÓN

Tema: PROCEDIMIENTOS ALMACENADOS.

Aplicaciones seguras con ClaseSeguridad

Multitarea en Java. Rafa Caballero - UCM

%& %)& '$!%*+ $, %%%&$ %%

GALA. ADO Modo Conectado. Modelo de Base de Datos Relacional. m018a Curso Manejo de Datos con Visual Basic 2010, 24 h

Lazarus Free Pascal Compiler

MySQL y Sesiones en PHP. Área de Ingeniería Telemática

TP Nº4 Android - SQLite Fecha Miércoles 2014/08/29 Profesor: Pablo Ulman (Polshu)

Programación de Objetos.Net C# LDP / DUOC-AV

Transcripción:

1. Inicie sesión en su manejador de base de datos y agregue los procedimientos de almacenados mediante los cuales manejaremos las tablas agregadas en la práctica anterior. 2. Colóquese en su base de datos. En la sección de Programmability Agregue un nuevo Stored Procedure

4. Agregue primero el sp_bloques USE [db_prision] GO /****** Object: StoredProcedure [dbo].[sp_bloques] Script Date: 09/03/2014 11:04:39 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE procedure [dbo].[sp_bloques] @accion int, @Id_Bloque int=null, @Capacidad int=null, @Descripcion varchar(50)='' as --accion para insertar bloques if @accion=1 begin insert into Tbl_Bloque values (@Capacidad,@Descripcion) end --accion para eliminar bloques if @accion=2 begin delete Tbl_Bloque where Id_Bloque=@Id_Bloque end --accion para actualizar if @accion=3 begin update Tbl_Bloque set Capacidad=@Capacidad,Descripcion=@Descripcion where Id_Bloque=@Id_Bloque end --accion para buscar por id if @accion=4 begin select * from Tbl_Bloque where Id_Bloque=@Id_Bloque end

Ejecútelo 5. Ya que tiene creado los SP para su base datos, es momento de agregar en la capa de datos las clases encargadas de manejarlas. Crearemos la Clase encargada manejar la conexión con SQL en este caso, agregale dentro del repositorio de Datos class Conexion_sql /// <summary> /// Cadena de Conexion a SQL /// </summary> private SqlConnection cn; static string Server = @"(local)"; static string User = "uprision"; static string Pass = "123456"; static string BD = "db_prision"; public Conexion_sql() try this.crearconexion(server, User, Pass, BD); this.abirconexion(); catch (Exception ex) /// <summary>

/// metodo para conectarse a su base de datos /// </summary> /// <param name="servidor"></param> /// <param name="usuario"></param> /// <param name="password"></param> /// <param name="nombrebase"></param> private void CrearConexion(String servidor, String usuario, String password, String nombrebase) string cadena = "Server =" + servidor + "; uid =" + usuario + "; pwd=" + password + "; database= " + nombrebase; this.cn = new SqlConnection(cadena); private void AbirConexion() this.cn.open(); public void ConexClose() this.cn.close(); public DataTable ExecuteSp(string sp, List<SqlParameter> args) //int i = 0; DataTable dt = new DataTable(); SqlCommand cmd; cmd = new SqlCommand(sp, this.cn); cmd.commandtype = CommandType.StoredProcedure; cmd.parameters.addrange(args.toarray()); //new SqlDataAdapter(cmd).Fill(dt); SqlDataAdapter dta = new SqlDataAdapter(cmd); dta.fill(dt); return dt;

6. Ahora necesitamos crear la clase que manejara los objetos del negocio en la base de datos, dentro del mismo repositorio de Datos Agregue la clase BloqueBD. class BloqueBD /// <summary> /// metodo para consultar bloque por id /// </summary> /// <returns></returns> public Bloque ConsultarBloque(int id) //instancia el objeto que regresara Bloque obbloque = new Bloque(); try ; //intancia la lista de parametros que recibe el procedimiento List<SqlParameter> param = new List<SqlParameter>() //se agregan los valores de los parametros new SqlParameter("@accion", 4), new SqlParameter("@Id_Bloque",id) //se ejecuta el procedimieno DataTable registro = new Conexion_sql().ExecuteSp("sp_bloques", param); //se llena el objeto a regresar foreach (DataRow fila in registro.rows) obbloque.idbloque = Convert.ToInt32(fila["Id_Bloque"].ToString()); obbloque.capacitad = Convert.ToInt32(fila["Capacidad"].ToString()); obbloque.descripcion = fila["descripcion"].tostring(); catch (Exception ex) obbloque=null; return obbloque;

/// <summary> /// metodo para borrar bloque /// </summary> /// <param name="id"></param> /// <returns></returns> public bool BorrarBloque(int id) bool correcto; try //intancia la lista de parametros que recibe el procedimiento List<SqlParameter> param = new List<SqlParameter>() //se agregan los valores de los parametros new SqlParameter("@accion", 2), new SqlParameter("@Id_Bloque",id) ; //se ejecuta el procedimieno DataTable registro = new Conexion_sql().ExecuteSp("sp_bloques", param); //se llena el objeto a regresar correcto = true; catch (Exception ex) correcto = false; return correcto; /// <summary> /// Metodo para actualizar un bloque /// </summary> /// <param name="id"></param> /// <param name="descripcion"></param> /// <param name="capacidad"></param> /// <returns></returns> public bool ActualizarBloquee(int id, string descripcion, int capacidad) bool correcto;

try //intancia la lista de parametros que recibe el procedimiento List<SqlParameter> param = new List<SqlParameter>() //se agregan los valores de los parametros new SqlParameter("@accion", 3), new SqlParameter("@Id_Bloque",id), new SqlParameter("@Capacidad", capacidad), new SqlParameter("@Descripcion",descripcion) ; //se ejecuta el procedimieno DataTable registro = new Conexion_sql().ExecuteSp("sp_bloques", param); //se llena el objeto a regresar correcto = true; catch (Exception ex) correcto = false; return correcto; public bool AgregarBloque(string descripcion, int capacidad) bool correcto; try //intancia la lista de parametros que recibe el procedimiento List<SqlParameter> param = new List<SqlParameter>() //se agregan los valores de los parametros new SqlParameter("@accion", 1), new SqlParameter("@Capacidad", capacidad), new SqlParameter("@Descripcion",descripcion)

; //se ejecuta el procedimieno DataTable registro = new Conexion_sql().ExecuteSp("sp_bloques", param); //se llena el objeto a regresar correcto = true; catch (Exception ex) correcto = false; return correcto; 7. Dentro del directorio de presentación vamos agregar una clase de servicio para los validadores de datos, los cuales podremos reusar en los campos de todos los campos que se necesiten en las otras formas, agregue una nueva clase y utilice los métodos que se muestran a continuación /// <summary> /// Esta Clase presenta metodos de servicio comunes utilizados en la capa de presentacion /// </summary> class Servicio /// <summary> /// Metodo para validar el evento KeyPress /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void KeyPressValida(object sender, KeyPressEventArgs e) if (char.isletter(e.keychar) char.issymbol(e.keychar) char.iswhitespace(e.keychar) char.ispunctuation(e.keychar)) e.handled = true;

/// <summary> /// Metodo para validar el portapapeles con KeyDown /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void keydownvalidaportapapeles(object sender, KeyEventArgs e) //Allow navigation keyboard arrows switch (e.keycode) case Keys.Up: case Keys.Down: case Keys.Left: case Keys.Right: case Keys.PageUp: case Keys.PageDown: case Keys.Delete: e.suppresskeypress = false; return; default: break; //Block non-number characters char currentkey = (char)e.keycode; bool modifier = e.control e.alt e.shift; bool nonnumber = char.isletter(currentkey) char.issymbol(currentkey) char.iswhitespace(currentkey) char.ispunctuation(currentkey); if (!modifier && nonnumber) e.suppresskeypress = true; //Handle pasted Text if (e.control && e.keycode == Keys.V) //Preview paste data (removing non-number characters)

string pastetext = Clipboard.GetText(); string strippedtext = ""; for (int i = 0; i < pastetext.length; i++) if (char.isdigit(pastetext[i])) strippedtext += pastetext[i].tostring(); if (strippedtext!= pastetext) //There were non-numbers in the pasted text e.suppresskeypress = true; //OPTIONAL: Manually insert text stripped of non-numbers TextBox me = (TextBox)sender; int start = me.selectionstart; string newtxt = me.text; newtxt = newtxt.remove(me.selectionstart, me.selectionlength); //remove highlighted text newtxt = newtxt.insert(me.selectionstart, strippedtext); //paste me.text = newtxt; me.selectionstart = start + strippedtext.length; else e.suppresskeypress = false;

8. Agregue un nuevo Windows Form para el manejo de bloques nómbrelo DispBloque, agregue los elemento que se muestran a continuación

txtidbloque txtcapacidad txtdescripcion btnbuscar Este botón buscara un elemento con el id recibido y lo mostrara en los campos de texto. btnactualizar Este botón actualizara un elemento con el id recibido y los demás parámetros. btneliminar Este botón eliminara un documento con el id recibido. btnagregar Este botón recibirá los campos necesarios para agregar un nuevo elemento. Recuerde agregar la referencia a los paquetes de Datos y Negocio. using practica4.datos; using practica4.negocio;

BloqueBD using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using practica4.negocio; using System.Data.SqlClient; using System.Data; Conexion_sql using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data; using System.Data.SqlTypes; using System.Data.SqlClient; Servicio using practica4.datos; using practica4.negocio;

Botones eventos Click: btnbuscar BloqueBD bdbloque = new BloqueBD(); Bloque objeto = bdbloque.consultarbloque(convert.toint32(txtidbloque.text)); if (objeto.idbloque!= 0) txtcapacidad.text = objeto.capacitad.tostring(); txtdescripcion.text = objeto.descripcion; else MessageBox.Show("El bloque no existe"); btnactualizar BloqueBD bdbloque = new BloqueBD(); Bloque objeto = bdbloque.consultarbloque(convert.toint32(txtidbloque.text)); if (objeto.idbloque!= 0) //mostramos un dialogo que solicita confirmar la accion DialogResult result = MessageBox.Show("Deseas actualizar el bloque", "Bloques", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); if (result == DialogResult.OK) bdbloque.actualizarbloquee(convert.toint32(txtidbloque.text), txtdescripcion.text, Convert.ToInt32(txtCapacidad.Text)); MessageBox.Show("se actualizo el bloque"); else

MessageBox.Show("No se actualizo el bloque"); else MessageBox.Show("El bloque no existe"); btneliminar // se crea la instancia del objeto bloquebd BloqueBD bdbloque = new BloqueBD(); // llena el bloque con el resultado del método que es del mismo valor Bloque objeto = bdbloque.consultarbloque(convert.toint32(txtidbloque.text)); //validamos si existe el bloque, si es igual a indica que no existe if (objeto.idbloque!= 0) //mostramos un dialogo que solicita confirmar la accion DialogResult result = MessageBox.Show("Deseas borrar el bloque", "Bloques", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); if (result == DialogResult.OK) bdbloque.borrarbloque(convert.toint32(txtidbloque.text)); MessageBox.Show("se borro el bloque"); else MessageBox.Show("No se borro el bloque"); else MessageBox.Show("El bloque no existe");

btnagregar BloqueBD bdbloque = new BloqueBD(); //Bloque objeto = bdbloque.consultarbloque(convert.toint32(txtidbloque.text)); //mostramos un dialogo que solicita confirmar la accion DialogResult result = MessageBox.Show("Deseas agregar el bloque", "Bloques", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); if (result == DialogResult.OK) bdbloque.agregarbloque(txtdescripcion.text, Convert.ToInt32(txtCapacidad.Text)); MessageBox.Show("se agrego el bloque"); else MessageBox.Show("No se agrego el bloque"); //recargamos la forma para limpiar y actualizar los campos en el grid this.close(); DispBloque dispbloques = new DispBloque(1); dispbloques.show();