V1 Contenidos Unidad 1 semana 6 PDF

Title V1 Contenidos Unidad 1 semana 6
Author Mauricio Riquelme
Course Taller de Análisis de Sistemas
Institution Instituto Profesional AIEP
Pages 27
File Size 1.2 MB
File Type PDF
Total Downloads 46
Total Views 123

Summary

Download V1 Contenidos Unidad 1 semana 6 PDF


Description

TALLER DE PROGRAMACIÓN.NET PROGRAMACIÓN EN .NET

ESCUELA DE CONSTRUCCIÓN E INGENIERÍA Director de Escuela / Marcelo Lucero

ELABORACIÓN Experto disciplinar / Cristián Molina Diseñador instruccional / Evelyn Aguilera

VALIDACIÓN PEDAGÓGICA Jefa de diseño instruccional y multimedia / Alejandra San Juan Reyes Experto disciplinar / Carlos Garcés DISEÑO DOCUMENTO Didactic

Contenido APRENDIZAJE ESPERADO DE LA SEMANA: ...................................................................... 4 1.

IDENTIFICA CONECTORES .NET ADECUADOS PARA MANEJO DE BASE DE DATOS EN VISUAL STUDIO, PARA LA CONSTRUCCIÓN DE SOFTWARE............................................................................................................... 4

1.1.

SQLCONNECTION: CONEXIÓN CON EL SQL SERVER ....................................... 4

1.1.1.

PROBLEMA ............................................................................................................... 4

1.2.

DISEÑO BASE DATOS RELACIONAL DE ACUERDO A MODELO ENTIDAD RELACIÓN................................................................................................................. 9

1.3.

SQLCOMMAND (INSERT): INSERTAR REGISTRO ............................................. 15

1.4.

SQLCOMMAND (SELECT): LISTAR REGISTROS ............................................... 15

1.5.

SQLCOMMAND (SELECT): CONSULTAR REGISTROS...................................... 16

1.6.

SQLCOMMAND (DELETE): BORRAR REGISTRO ............................................... 16

1.7.

SQLCOMMAND (UPDATE): MODIFICAR REGISTRO.......................................... 16

1.8.

SQLCOMMAND : PASANDO PARÁMETROS ....................................................... 16

EJEMPLIFICACIÓN ............................................................................................................... 16 1.9.

PROCEDIMIENTO PARA CONTROLAR ERRORES Y EXCEPCIONES QUE SE PRODUCEN CON EL ENLACE DE DATOS .................................................... 17

1.10.

GUARDA LA INFORMACIÓN DE LA EXCEPCIÓN EN UN LOG.......................... 23

1.11.

GUARDA EN EL LOG EXCEPTION.TOSTRING() EN LUGAR EXCEPTION.MESSAGEERROR ............................................................................ 24

1.12.

COLOCAR UN ÚNICO TRY – CATCH EN EL NIVEL SUPERIOR DE CADA HILO (THREAD) ...................................................................................................... 24

1.13.

APLICACIONES DE CLIENTE (UI) UTILIZAR CAPTURADORES DE ERRORES GLOBALES........................................................................................... 24

1.14.

SI TRABAJAS CON LIBRERÍAS DE TERCEROS CAPTURA LAS EXCEPCIONES EN EL NIVEL MÁS BAJO ............................................................ 26

Taller de Programación.Net / Programación en .NET

3

APRENDIZAJE ESPERADO DE LA SEMANA: •

Construyen software en base a requerimientos de usuarios utilizando bases de datos y comprobando excepciones de sistema y de base de datos.

1. IDENTIFICA CONECTORES .NET ADECUADOS PARA MANEJO DE BASE DE DATOS EN VISUAL STUDIO, PARA LA CONSTRUCCIÓN DE SOFTWARE Una de las partes más importantes, es la de conectar a una base de datos. En esta semana y que será de utilidad para los principiantes, ayudaremos a entender los diferentes pasos para conectarnos a una base de datos, ya que existen muchas maneras de conectarse a bases de datos con C#, pero aquí revisaremos la manera más simple.

1.1. SQLCONNECTION: CONEXIÓN CON EL SQL SERVER Desde .Net disponemos de un conjunto de clases para conectarnos y pedir al SQL Server que ejecute comandos. El primer paso es conectarnos con nuestro servidor de base de datos que instalamos en los conceptos anteriores y vimos cómo podemos comunicarnos utilizando el Microsoft SQL Server Management Studio.

1.1.1. PROBLEMA Confeccionar una aplicación que permita conectarnos con nuestro servidor de base de datos y seleccionar una determinada base de datos. Luego de la conexión cerrar la misma. a).- Para conectarnos con el servidor y seleccionar una base de datos debemos utilizar la clase SqlConnection: SqlConnection conexion=new SqlConnection("server=DIEGO-PC ; database=base1 ; integrated security = true"); El string que le pasamos al constructor del SqlConnection le indicamos como primer dato el nombre de nuestro servidor, en su máquina lo puede ubicar cuando arranca el SQL Server Management Studio:

Taller de Programación.Net / Programación en .NET

4

Figura 1: SQL Server Fuente: https://www.tutorialesprogramacionya.com/csharpya/imagentema/foto169.jpg Algo importante si su nombre incluye la barra "\" luego disponga dos seguidas ya que C# esta barra es un caracter de control y por lo tanto para disponer una debemos disponer "\\". El segundo dato que se le pasa es el nombre de la base de datos con la que nos comunicaremos, en nuestro caso creamos previamente la base de datos "base1" y finalmente el último dato obligatorio es indicar "integrated security = true", esto hace que se utilice el usuario propio de Windows y no necesitemos por el momento crear otros usuarios propios de SQL Server. b).- Creemos un nuevo proyecto en Visual Studio y demos como nombre: BaseDatos1. La interfaz visual es un simple botón:

Figura 2: Interfaz visual Fuente: https://www.tutorialesprogramacionya.com/csharpya/imagentema/foto170.jpg

Taller de Programación.Net / Programación en .NET

5

c).- El código fuente es: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;

using System.Data.SqlClient;

namespace PruebaBaseDatos1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); }

private void button1_Click(object sender, EventArgs e) { SqlConnection conexion = new database=base1 ; integrated security = true");

SqlConnection("server=DIEGO-PC

;

conexion.Open(); MessageBox.Show("Se abrió la conexión con el servidor SQL Server y se seleccionó la base de datos"); conexion.Close(); MessageBox.Show("Se cerró la conexión.");

Taller de Programación.Net / Programación en .NET

6

} } } d).- Lo primero que hacemos es incluir el espacio de nombres: using System.Data.SqlClient; Este espacio de nombres define la clase SqlConnection. Para el evento Click del button1 implementamos primero la creación de un objeto de tipo SqlConnection: SqlConnection conexion = new database=base1 ; integrated security = true");

SqlConnection("server=DIEGO-PC

;

e).- Abrimos la conexión: conexion.Open(); f).- Mostramos un mensaje que la conexión se abrió: MessageBox.Show("Se abrió la conexión con el servidor SQL Server y se seleccionó la base de datos"); g).- Cerramos la conexión: conexion.Close(); h).- Mostramos finalmente un mensaje del cierre de la conexión: MessageBox.Show("Se cerró la conexión."); Si aparece algún error es que especificó en forma incorrecta la cadena de conexión, por ejemplo si disponemos un nombre equivocado de servidor por ejemplo: SqlConnection conexion = new SqlConnection("server= --------- ; database=base1 ; integrated security = true"); i).- Luego debe detenerse nuestro programa indicando donde ocurrió el error:

Taller de Programación.Net / Programación en .NET

7

Figura 3: Error Fuente: https://www.tutorialesprogramacionya.com/csharpya/imagentema/foto171.jpg También ocurrirá un error si disponemos un nombre de base de datos inexistente:

Figura 4: Error ejemplo Fuente: https://www.tutorialesprogramacionya.com/csharpya/imagentema/foto172.jpg j).- Si todo está correcto podemos seguir con los próximos conceptos para pedir que SQL Server ejecute comando y recuperar los resultados. Fuente:https://www.tutorialesprogramacionya.com/csharpya/detalleconcepto.php?codigo=199&inicio=60

Taller de Programación.Net / Programación en .NET

8

1.2. DISEÑO BASE DATOS RELACIONAL DE ACUERDO A MODELO ENTIDAD RELACIÓN a).- Desde el menú de inicio de Windows podemos acceder al SQL Server Management Studio:

Figura 5: Menú Fuente: https://www.tutorialesprogramacionya.com/csharpya/imagentema/foto157.jpg b).- Cuando iniciamos el programa aparece un diálogo donde debemos ingresar "Nombre del Servidor" y la "Autenticación":

Figura 6: Inicio programa Fuente: https://www.tutorialesprogramacionya.com/csharpya/imagentema/foto158.jpg c).- Ya luego de la conexión al servidor podemos, por ejemplo, proceder a crear nuestra primer base de datos, presionamos el botón derecho del mouse estando posicionado en "Base de datos" y elegimos "Nueva base de datos...":

Taller de Programación.Net / Programación en .NET

9

Figura 7: Creación base de datos Fuente: https://www.tutorialesprogramacionya.com/csharpya/imagentema/foto159.jpg d).- Elegiremos como nombre para la base de datos a crear: "base1":

Figura 8: Nombre base de datos Fuente: https://www.tutorialesprogramacionya.com/csharpya/imagentema/foto160.jpg

Taller de Programación.Net / Programación en .NET

10

e).- Ahora seleccionamos la "base1" y presionamos el botón derecho del mouse sobre "tablas" y elegimos la primer opción "tabla":

Figura 9: Tabla base de datos Fuente: https://www.tutorialesprogramacionya.com/csharpya/imagentema/foto161.jpg f).- Vamos a crear una tabla llamada "articulos" que la definiremos con tres campos: codigo int primary key identidad descripcion varchar 50 precio float El primer campo lo creamos (debemos presionar el botón derecho del mouse sobre el campo para definirlo como clave primaria):

Taller de Programación.Net / Programación en .NET

11

Figura 10: Definición de campos base de datos Fuente: https://www.tutorialesprogramacionya.com/csharpya/imagentema/foto162.jpg Los tres campos que definimos son:

Figura 11: Definición de campos base de datos realizado Fuente: https://www.tutorialesprogramacionya.com/csharpya/imagentema/foto163.jpg Y presionando el ícono siguiente definimos el nombre de la tabla:

Taller de Programación.Net / Programación en .NET

12

Figura 12: Definición nombre tabla Fuente: https://www.tutorialesprogramacionya.com/csharpya/imagentema/foto164.jpg Asignamos como nombre a la tabla "artículos":

Figura 13: Definición nombre tabla artículos Fuente: https://www.tutorialesprogramacionya.com/csharpya/imagentema/foto165.jpg Para ejecutar comando SQL sobre una determinada base de datos procedemos a posicionar la flecha del mouse sobre una base de datos, por ejemplo “base1” y presionamos el botón derecho del mouse seleccionando “Nueva consulta”:

Taller de Programación.Net / Programación en .NET

13

Figura 14: Nueva consulta Fuente: https://www.tutorialesprogramacionya.com/csharpya/imagentema/foto166.jpg En la ventana de consultas podemos escribir y ejecutar comandos SQL:

Figura 15: Comandos SQL

Taller de Programación.Net / Programación en .NET

14

Fuente: https://www.tutorialesprogramacionya.com/csharpya/imagentema/foto167.jpg Si escribimos luego del comando insert un select podemos ver el registro añadido:

Figura 16: Registro añadido Fuente: https://www.tutorialesprogramacionya.com/csharpya/imagentema/foto168.jpg

1.3. SQLCOMMAND (INSERT): INSERTAR REGISTRO Vimos en el concepto anterior como conectarnos al servidor de SQL Server y seleccionar una base de datos. Veremos ahora como pedir que el SQL Server ejecute un comando "INSERT". Trabajaremos con la base de datos "base1" que creamos en conceptos anteriores y con la tabla "articulos" que también creamos previamente con la estructura: codigo int primary key identidad descripcion varchar 50 precio float

1.4. SQLCOMMAND (SELECT): LISTAR REGISTROS Vimos el concepto anterior como enviar datos al servidor para que se efectúe un insert en una tabla. Veremos ahora como recuperar los datos almacenados en una tabla para mostrarlos en pantalla.

Taller de Programación.Net / Programación en .NET

15

1.5. SQLCOMMAND (SELECT): CONSULTAR REGISTROS En el concepto anterior recuperamos todos los registros de una tabla. Ahora veremos cómo podemos rescatar uno en particular.

1.6. SQLCOMMAND (DELETE): BORRAR REGISTRO Otra de las actividades comunes con los datos es la eliminación. Para eliminar registros de una tabla debemos emplear el comando SQL delete.

1.7. SQLCOMMAND (UPDATE): MODIFICAR REGISTRO Vimos hasta ahora el alta (carga), consulta (búsqueda) y baja (borrado). Ahora veremos cómo modificar datos de una fila de la tabla. Para modificar datos debemos utilizar el comando SQL update.

1.8. SQLCOMMAND : PASANDO PARÁMETROS Hemos visto que podemos formar un comando SQL para enviarlo a SQL Server generando un string concatenando los datos que ingresa el operador por teclado: string cadena = "insert into articulos(descripcion,precio) values ('" + descri + "'," + precio + ")"; Esta metodología tiene el inconveniente cuando hay que elaborar comandos SQL con muchos campos (imaginemos que tenemos que elaborar un insert con una tabla que tiene más de 10 campos) Para solventar esta dificultad se introduce el concepto de parámetros dentro del comando SQL.

EJEMPLIFICACIÓN Para complementar los temas vistos, les invitamos a revisar los documentos llamados: -

Insertar

-

Listar registro

-

Consultar registro

-

Eliminar registro

-

Modificar registro

Pueden acceder a través del menú Recursos complementarios de la unidad 1, Material complementario.

Taller de Programación.Net / Programación en .NET

16

1.9. PROCEDIMIENTO PARA CONTROLAR ERRORES Y EXCEPCIONES QUE SE PRODUCEN CON EL ENLACE DE DATOS La librería o API de Java proporciona gran cantidad de clases que manejan casi cualquier tipo de excepción, pero no estamos obligados a utilizar solo esas clases sino que podemos crear nuestras propias excepciones. Si queremos crear una excepción no verificada debemos heredar de RuntimeException y si queremos que sea verificada deberemos heredar de Exception o de alguna de sus subclases. A menudo, las excepciones y los errores se producen en los objetos comerciales subyacentes cuando se enlazan a controles. Puede interceptar estos errores y excepciones y, después, recuperar o pasar la información de error al usuario controlando el evento BindingComplete para un componente Binding, BindingSource o CurrencyManager determinado. a).- Ejemplo En este ejemplo de código se muestra cómo controlar errores y excepciones que se producen durante una operación de enlace de datos. Muestra cómo interceptar los errores controlando el evento Binding.BindingComplete de los objetos Binding. Para interceptar errores y excepciones controlando este evento, debe habilitar el formato del enlace. Puede habilitar el formato al crear el enlace o al agregarlo a la colección de enlaces, o estableciendo la propiedad FormattingEnabled en true. C# Copiar using System; using System.Drawing; using System.Windows.Forms;

class Form1 : Form { private BindingSource BindingSource1 = new BindingSource(); private TextBox textBox1 = new TextBox(); private TextBox textBox2 = new TextBox(); private TextBox textBox3 = new TextBox(); public Form1() {

Taller de Programación.Net / Programación en .NET

17

//Set up the textbox controls. this.textBox1.Location = new System.Drawing.Point(82, 13); this.textBox1.TabIndex = 1; this.textBox2.Location = new System.Drawing.Point(81, 47); this.textBox2.TabIndex = 2; this.textBox3.Location = new System.Drawing.Point(81, 83); this.textBox3.TabIndex = 3;

// Add the textbox controls to the form this.Controls.Add(this.textBox2); this.Controls.Add(this.textBox1); this.Controls.Add(this.textBox3);

// Handle the form's Load event. this.Load += new System.EventHandler(this.Form1_Load); } Binding partNameBinding; Binding partNumberBinding;

private void Form1_Load(object sender, EventArgs e) { // Set the DataSource of BindingSource1 to the Part type. BindingSource1.DataSource = typeof(Part);

// Bind the textboxes to the properties of the Part type, // enabling formatting. partNameBinding = textBox1.DataBindings.Add("Text", BindingSource1, "PartName", true);

Taller de Programación.Net / Programación en .NET

18

partNumberBinding "PartNumber",

=

textBox2.DataBindings.Add("Text",

BindingSource1,

true);

//Bind the textbox to the PartPrice value with currency formatting. textBox3.DataBindings.Add("Text", BindingSource1, "PartPrice", true, DataSourceUpdateMode.OnPropertyChanged, 0, "C");

// Handle the BindingComplete event for BindingSource1 and // the partNameBinding. partNumberBinding.BindingComplete += new BindingCompleteEventHandler(partNumberBinding_BindingComplete); partNameBinding.BindingComplete += new BindingCompleteEventHandler(partNameBinding_BindingComplete);

// Add a new part to BindingSource1. BindingSource1.Add(new Part("Widget", 1234, 12.45)); }

// Handle the BindingComplete event to catch errors and exceptions // in binding process. void partNumberBinding_BindingComplete(object sender, BindingCompleteEventArgs e) { if (e.BindingCompleteState != BindingCompleteState.Success) MessageBox.Show("partNumberBinding: " + e.ErrorText); }

// Handle the BindingComplete event to catch errors and // exceptions in binding process.

Taller de Programación.Net / Programación en .NET

19

void partNameBinding_BindingComplete(object sender, BindingCompleteEventArgs e) { if (e.BindingCompleteState != BindingCompleteState.Success) MessageBox.Show("partNameBinding: " + e.ErrorText); } [STAThread] static void Main() { Application.EnableVisualStyles(); Application.Run(new Form1()); } } // Represents a business object that throws exceptions when invalid values are // entered for some of its properties. public class Part { private string name; private int number; private double price;

public Part(string name, int number, double price) { PartName = name; PartNumber = number; PartPrice = price; }

public string PartName {

Taller de Programación.Net / Programación en .NET

20

get { return name; } set { if (value.Length...


Similar Free PDFs