Ing. Wiler Arturo Ponce Benites 2017
Ing. Wiler Arturo Ponce Benites 2017
Ing. Wiler Arturo Ponce Benites 2017
USE CONTRATO
CREATE TABLE ESTADO_EQUIPO
GO
(
COD_EST CHAR(6) NOT NULL,
CREATE TABLE EQUIPO DES_EST VARCHAR(100)
( )
IDE_EQU CHAR(6) NOT NULL, GO
COD_TIP_EQU CHAR(6) NOT NULL,
DESC_EQU VARCHAR(50) NOT NULL,
CREATE TABLE TIPO_EQUIPO
PRE_EQU MONEY NULL,
(
COD_EST CHAR(6) NULL
COD_TIP_EQU CHAR(6) NOT NULL,
)
DES_TIP VARCHAR(100) NOT NULL
GO
)
GO
Script de creación de la Primary Key de las tablas: EQUIPO, TIPO_EQUIPO y ESTADO_EQUIPO
ALTER TABLE EQUIPO ADD PRIMARY KEY (IDE_EQU)
GO
GO
Diagrama de base de datos: Contrato
Script ingreso de datos en las tablas:
EQUIPO, TIPO_EQUIPO y ESTADO_EQUIPO
GO
frmMantenimientoEquipo.cs[Design]
Introducción a ADO.NET
Always Encrypted protege los datos de la máquina cliente para que los administradores de
bases de datos no tengan acceso a los datos de texto sin formato. El cifrado y descifrado da
datos ocurre de forma transparente en el nivel de controlador, lo que minimiza los cambios
que debe realizarse en las aplicaciones existentes.
Proveedores de datos
Los cuales proporcionan clases especializadas para el acceso y manipulación de la información
desde una base de datos.
Se tiene las clases: SqlConnection, SqlCommand, SqlDataAdapter y DataReader.
DataSet
El cual recibe el modelo relacional de la base de datos, desconectándose así de la base de datos y
manteniendo información en memoria.
Proveedores de datos
Existen cuatro clases, las que componen un entorno de desarrollo a nivel cliente-servidor.
Cada una de estas clases, tiene un objetivo especifico dentro de este desarrollo.
➢ Objeto Connection
➢ Objeto DataAdapter
➢ Objeto Command
➢ Objeto DataReader: Transaction, Parameter y Exception.
SqlConnection cn =
new SqlConnection(ConfigurationManager.ConnectionStrings["cn"].ConnectionString);
Objeto Llena un DataSet o DataTable y realiza las actualizaciones
necesarias en el origen de datos.
DataAdapter Observe el código que permite llenar un DataSet desde una
conexión activa
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM CLIENTE", cn);
DataTable dt = new DataTable();
da.Fill(dt);
SqlDataAdapter da = new SqlDataAdapter("SP_LISTAFICHADEVOLUCION", cn);
DataTable dt = new DataTable();
da.Fill(dt);
SqlDataAdapter da = new SqlDataAdapter("Instrucción SQL", cn);
DataTable dt = new DataTable();
da.Fill(dt);
Objeto Ejecuta un comando en un origen de datos. Es a partir de este
Command que se puede obtener resultados escalados, insersiones,
actualizaciones o eliminaciones de registros.
SqlCommand
Representa un procedimiento almacenado o una instrucción de Transact-SQL que se ejecuta en una base de datos SQL
Server como una sentencia escalada: inserción, actualización o eliminación.
SqlCommandBuilder
representa un procedimiento almacenado o una instrucción de Transact-SQL que se ejecuta de forma desconectada al
SQL Server.
SqlConnection
Representa una conexión abierta a una base de datos de SQL Server.
SqlDataAdapter
Representa un conjunto de comando de datos y una conexión de base de datos que se utilizan para rellenar un DataSet.
SqlDataReader
Proporciona una forma de leer una secuencia de filas solo hacia adelante en una base de datos SQL Server.
SqlException
Representa la excepxión que se produce cuando SQL Server devuelve una advertencia o un error.
SqlTransaction
Representa una transacción de Transact-SQL que se realiza en una base de datos de SQL server.
Espacio de nombre System.Data
El espacio de nombres System.Data proporciona acceso a las clases que representan la arquitectura de ADO.NET.
Desde aquí se podrán compilar componentes que administran eficazmente los datos de varios orígenes de datos.
Observe las principales clases que componen el espacio de trabajo
DataColumn
Representa una columna especificada en un DataTable.
DataRow
representa una fila de datos especificada en un DataTable.
DataSet
Representa una caché de memoria interna de datos recuperados de un origen de datos.
DataTable
Representa una tabla almacenada en un espacio de memoria desde un origen de datos.
DataView
Representa una vista personalizada que se puede enlazar a datos de un DataTable para
ordenarlos, buscarlos, etc.
Clase SqlConnection
Contiene métodos y propiedades responsables de la conexión a una base de datos efectiva, además de
representar la interacción entre las sentencias enviadas al servidor, así como las que se reciben,
Un objeto de la clase SqlConnection guarda datos del servidor SQL, al cual se desea conectar.
Luego, podrán ser abiertos para ejecutar sentencias o cerrarlas cuando se termine un proceso.
Método constructor:
Formato Descripción
SqlConnection() Inicializa un objeto de la clase SqlConnection vacía, de tal forma que, mediante propiedades, pueda
configurarse la conexión al servidor de datos.
El siguiente código muestra la configuración vacía.
SqlConnection cn = new SqlConnection();
Y mediante la propiedad ConnectionString se puede configurar la conexión a una base de datos de Sql
Server, por ejemplo:
cn.ConnectionString = "server=USER-PC; database=Contrato; integrated security=SSPI";
SqlConnection Inicializa con una cadena de conexión directamente a un objeto de la clase SqlConnection. El siguiente
(cadena) código muestra la configuración a la base de datos CONTRATO del Sql Server:
SqlConnection cn =
new SqlConnection("server=USER-PC; database=Contrato; integrated security=SSPI");
En ambos formatos se necesita especificar los siguientes parámetros:
Nombre del servidor
Aquí se especifica el nombre del servidor al se desea conectar. Para este caso,
se concentrará en el servidor SQL Server.
Observe una lista de posibles especificaciones:
Especificación Descripción
Data Source = (local);
Data Source = .;
Server = (local);
Especificando un nombre de servidor por defecto
Server = .;
Data Source = 192.168.1.10;
Especificando un nombre del servidor con número de IP.
Server = 192.168.1.10;
Data Source = SOCRATES; Especificando un nombre del servidor configurado a nivel de
Server = SOCRATES; red.
Nombre de la base de datos
Aquí se especifica el nombre de la base de datos de donde provienen los datos. Hay que tener en
cuenta que la base de datos debe encontrarse dentro del servidor especificado en el nombre del
servidor.
Especificación Descripción
Initial Catalog = Contrato; Especificando la base de datos con el catalogo inicial.
Database = Contrato; Especificando la base de datos con Database.
Especificación de seguridad
Aquí se especifica el modo de seguridad que se tiene frente al servidor, ya que desde allí se
obtendrá las credenciales de acceso a la base de datos.
Especificación Descripción
Integrated Security = SSPI; Especificación para el modo de autenticación Windows.
Integrated Security = True;
User Id = sa; Password = 1v3 Especificación para el modo de autenticación Sql Server.
Uid = sa; Pwd = 1v3
Propiedad
Propiedad Descripción
Establece la cadena de conexión usada para abrir una base de datos en Sql Server.
En la misma aplicación:
SqlConnection cn = new SqlConnection();
cn.ConnectionString = "server=USER-PC;database=contrato;integrated security=SSPI";
SqlCommand cmd = new SqlCommand("select * from Cliente", cn);
cn.Open();
// Agregando parámetros
cmd.Parameters.Add("@cod",SqlDbType.Char).Value=codigo;
da.DeleteCommand=cmd;
Establece una sentencia SQL o procedimiento almacenado para agregar un registro de
una tabla en SQL Server.
// Creando la cadena de conexión
SqlConnection cn = new SqlConnection("server=.; database=contrato;integrated
security=SSPI");
// Agregando parámetros
cmd.Parameters.Add("@cod", SqlDbType.Char).Value = codigo;
cmd.Parameters.Add("@nom", SqlDbType.Char).Value = nombres;
cmd.Parameters.Add("@dir", SqlDbType.Char).Value = direccion;
cmd.Parameters.Add("@tel", SqlDbType.Char).Value = telefono;
da.InsertCommand = cmd;
Establece una sentencia SQL o procedimiento almacenado para listar uno o más registros
de una tabla en SQL Server.
// Creando la cadena de conexión
SqlConnection cn = new SqlConnection("server=.;database=contrato;integrated
security=SSPI");
// Agregando parámetros
cmd.Parameters.Add("@cod", SqlDbType.Char).Value = codigo;
cmd.Parameters.Add("@nom", SqlDbType.Char).Value = nombre;
cmd.Parameters.Add("@dir", SqlDbType.Char).Value = direccion;
cmd.Parameters.Add("@tel", SqlDbType.Char).Value = telefono;
Métodos:
Permite liberar los recursos usados en la implementación del
SqlDataAdapter.
Dispose
La sentencia para liberar el objeto SqlDataAdapter da.dispose();
Permite:
Agregar filas a un objeto datatable o dataset.
Fill
Rellenar un datatable da.Fill(dt);
Rellenar un DataSet da.Fill(ds,"Tabla");
Permite devolver el nombre del objeto de la clase SqlDataAdapter.
ToString
ConfigurationManager
Proporciona acceso a los archivos de configuración para
las aplicaciones cliente. Se debe tener en cuenta que se
debe agregar la librería al proyecto realizando los
siguientes pasos:
1.Clic derecho sobre el proyecto.
2.Seleccione Agregar > Referencia
3.Active el check System.Configuration
Librería:
La librería se especificará solo en la clase donde
System.Configuration
se implementa la cadena de conexión
Propiedad:
Especifica la conexión desde un pool de
ConnectionStrings conexión implementado en el archivo de
configuraciones app.config
Observe una implementación complete hacia la base de datos CONTRATO en SQL Server:
Pasos:
1.- En el archivo de configuración app.config agregue el siguiente código:
Considere que la cadena de conexión se especifica en ConnetionString y que este debe tener un nombre especificado
en <<name>>; es este mismo nombre el cual se hará referencia en el método de conexión.
2.- Luego, prepare el método de conexión con el siguiente código:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
Métodos:
Libera todos los recursos asignados al objeto de la clase DataSet.
Dispose El código de liberación es: ds.dispose();
Observe una implementación completa para mostrar los registros de los clientes:
Pasos:
1.- Agregue las siguientes librerías:
using System.Data;
using System.Data.SqlClient;
cmd.CommandType = CommandType.StoreProcedure;
Permite especificar de que cadena de conexión proviene la
sentencia asociada al objeto de la clase SqlCommand
cmd.CommandType = CommandType.StoreProcedure;
Parameters
cmd.Parameters.Add("@cod",SqlDbType.Char).Value = codigo;
cmd.Parameters.Add("@nom",SqlDbType.Char).Value = nombre;
cmd.Parameters.Add("@dir",SqlDbType.Char).Value = direccion;
cmd.Parameters.Add("@tel",SqlDbType.Char).Value = telefono;
Especifica la transacción que puede tener una sentencia SQL o
procedimiento almacenado.
SqlTransaction tr = cn.BeginTransaction(Isolation.Serializable);
Transaction
string cadena = "SELECT * FROM CLIENTE";
cmd.Command cmd = new Command(cmd, cn);
cmd.Transaction = tr;
Métodos:
cmd.Parameters.Add("@cod",SqlDbType.Char).Value = codigo;
cmd.ExecuteNonQuery();