Вы находитесь на странице: 1из 48

UNIDAD III

ACCESO A DATOS

ACCESO A DATOS
Aplicar los principales controles y herramientas para el acceso y
manipulacin de las bases de datos.

CONTINUANDO CON
VALIDACIONES
Para asegurar la consistencia de datos
Utilizando eventos (KeyPress, Validatig)
Mensajes de Error (ErrorProvider, MessageBox)
Validando Antes de Guardar datos (verificando que todos los componentes

tengan datos seleccionados y correctos).

3.1 INTRODUCCIN
En esta unidad veremos la aplicacin demostrativa

que d solucin a una problemtica real en la cual se


utilice el acceso a datos mediante herramientas,
controles y objetos ADO del lenguaje de
programacin.

QU ES UNA BASE DE
DATOS?
Una Base de Datos es una coleccin organizada de datos
Existen muchas estrategias para organizar datos, de manera que

se facilite el acceso y la manipulacin de los mismos.


Un sistema de administracin de bases de datos (DBMS)

proporciona mecanismos para:


Almacenar
Organizar
Recuperar
Modificar datos
Nos enlazaremos

UNA MIRADA HACIA EL


PASADO
En los aos 80 0 90 se usaban Tecnologas Mixtas para el acceso a datos.
Las Tecnologas Mixtas eran mdulos o complementos de programacin

inventados por terceros , cuya ventajas estaban en el precio y en ofrecer


prestaciones superiores a los fabricantes (de manejadores de datos o
persistencia de datos).

Entre estos mdulos se encontraban Clipper y FoxBase para aplicaciones

que manejaban Archivos de Base de Datos (DBF)

IMGENES DE DBASE

ACTUALIDAD
Los sistemas de bases de datos mas populares en la

actualidad son las Bases de Datos Relacionales.


SQL es el lenguaje estndar internacional que se utiliza

(muy frecuentemente) con las Bases de Datos


Relacionales, para realizar consultas y manipular datos.
Algunos Sistemas de Administracin de Bases de

Datos Relacionales (RDBMS) son: SQL Server, Oracle,


IBM DB2, PostgresSQL , MySQL.

DE C# HACIA LAS BD
(ADO.NET)
Un lenguaje de programacin se conecta e

interacta con una base de datos relacional a travs


de una interfaz de base de datos: un software
que facilita la comunicacin entre un sistema de
administracin de bases de datos y un programa.
Los programas en C# se comunican con las bases

de datos y manipulan la informacin en ellos a


travs de ADO.NET

BASES DE DATOS RELACIONALES


El modelo de Datos Relacional utiliza el concepto de

relacin matemtica (que tiene una apariencia similar a


una tabla de valores) como su bloque de construccin
bsico,
y tiene sus bases tericas en la teora de
conjuntos.
Este modelo se ha implementado en un gran numero de

sistemas comerciales a lo largo de los ltimos veinte aos


(Ref. Fundamentos de Sistemas de Bases de Datos, Ramez
A. Elmasri, Shamkant B. Navathe).
Una Base de Datos Relacional es una representacin lgica

de datos, que permite acceder a los mismos de manera


independiente de su estructura fsica; adems organiza los
datos en tablas.

UBICACIN Y USO DE LAS


BASES DE DATOS
El cliente enva mensajes que son

representados en solicitudes SQL


hacia el servidor de bases de
datos.
Los resultados de cada orden de

SQL son devueltos al cliente


El DBMS se encarga de recolectar

los datos desde su base de datos,


no enva los registros completos,
tenindose un uso mucho ms
eficiente de la capacidad de
procesamiento distribuida.

SQL
El lenguaje de consulta estructurado o SQL (por sus

siglas en ingls structured query language) es un


lenguaje declarativo de acceso a Bases de Datos
relacionales que permite especificar diversos tipos de
operaciones en ellas.
Una de sus caractersticas es el manejo del lgebra y el

clculo relacional que permiten efectuar consultas con el


fin de recuperar de forma sencilla informacin de inters
de Bases de Datos, as como hacer cambios en ella.

PALABRAS CLAVE DE SQL

EJEMPLOS DE SQL

Select (Sintaxis)
SELECT listadecampos

FROM expresindetabla
WHERE criterios
Ejemplo: Select Nombre, Cedula From Cliente Where
Nombre = Cano

Insert (Sintaxis)
INSERT INTO destino [(campo1[, campo2[, ...]])]

VALUES (valor1[, valor2[, ...])


Ejemplo: Insert Into Cliente (Nombre, Cedula, Cuenta, Ciudad)
Values (JUAN,1234567,C-555,BOGOTA)

EJEMPLOS DE SQL
Delete (Sintaxis)
DELETE [tabla.*]

FROM tabla
WHERE criterios
Delete From Cliente Where Nombre= SERNA

Update (Sintaxis)
UPDATE tabla

SET nuevovalor
WHERE criterios;
Update Cliente Set Ciudad = LA PAZ Where Nombre =VEGA

USANDO ADO.NET
El modelo de objetos proporciona una Interfaz para acceder

a los Sistemas de Base de Datos mediante la programacin.


El entorno de desarrollo de Visual Studio ofrece

herramientas de Programacin Visual que simplifican el


proceso de utilizar bases de datos en los proyectos o
sistemas en desarrollo.
Debido a esto es importante tener un conocimiento bsico

acerca de cmo funciona el modelo de objetos ADO.NET


para comprender el acceso a datos en C#.

ESPACIO DE NOMBRES
SYSTEM.DATA
Es la raz de la API en donde se incluyen los espacios de

nombres importantes para ADO.NET.


System.Data.OleDb y System.Data.SqlClient contienen

clases que permiten a los programas conectarse con orgenes


de datos y manipularlos.
System.Data.OleDb contiene clases diseadas para trabajar

con cualquier origen de datos.


System.Data.SqlClient cuenta con clases optimizadas

para trabajar con bases de datos de Microsoft SQL Server.

NAMESPACE
SYSTEM.DATA.SQLCLIENT

SYSTEM.DATA.SQLCLIENT
SqlConnection.- Representa una conexin a un origen

de datos; en especifico a una base de datos de SQL


Server.

Una conexin puede estar activa (es decir abierta y

que permita presentar los datos y recuperarlos) o


cerrada.

SqlCommand.- Representa a un comando de SQL que

un DBMS puede ejecutar en una base de datos. Utiliza


un SqlConnection para conectarse a la base de datos.

PRIMERA PRCTICA
Crear una Base de Datos llamada ClinicaMedica
Dentro de la Base de datos, crear una tabla llamada Medicos, con los

siguientes Campos:
Clave

numeric(4,0) not null PK


Nombre
nvarchar(40) not null
Especialidad
nvarchar(20) not null,
Telefono
nvarchar(10) not null
Consultorio
nvarchar(30)
Generar la Base de Datos con esta tabla, agregando 5 registros posteriormente

se crearn otras tablas para complementarla

3.2. CONTROLES
DE ACCESO A
DATOS
CONEXIN SIN ASISTENTE

CONEXIONES SIN
ASISTENTE
Si bien es cierto que el asistente , genera de forma

rpida una Conexin a una Base de Datos, la mayora


de los sistemas reales (o las empresas
desarrolladoras de software) crean las conexiones a
travs de cdigo.

Esto permite un mejor control en los errores y mayor

portabilidad cuando es necesario cambiar el


manejador de Bases de Datos.

UTILIZANDO ADO.NET CON


SQL SERVER
Los servidores de Bases de Datos regularmente estn

disponibles para redes de trabajo (o de desarrollo).

Tambin existen servidores que trabajan en nuestro

propio equipo (cuando se trata de un sistema local o


pequeo).

Lo mas comn es tener un servidor dentro de la red

con un puerto TCP/IP a la escucha, lo que permite a


los usuarios conectarse desde una estacin de
trabajo (o cliente).

USANDO ADO.NET CON SQL


SERVER
Para conectarse utilizando el driver de ADO.NET para SQL Server se tiene

que incluir el namespace siguiente:


using System.Data.SqlClient;

CONECTARSE A UNA BASE DE


DATOS
Se debe de crear una cadena de conexin que
incluir:

Servidor a utilizar (que puede ser local o remoto)


Nombre de la Base de Datos
Usuario y Contrasea

Cada uno de los elementos de la cadena de conexin


esta separado por ; (punto y coma)

Una forma fcil de obtener la cadena de conexin es usando

el asistente:

CADENA DE CONEXIN

CADENA DE CONEXIN
La cadena de conexin se pasa como parmetro a un objeto

SqlConnection, as:

SqlConnection conn= new SqlConnection(strCon);

MANEJANDO EXCEPCIONES
CON LA CONEXIN
Las conexiones a las bases de datos pueden generar excepciones.
Por lo tanto, para saber si una conexin se abre de forma correcta se debe

de poner en un bloque try.. catch.

De tal manera de que solo en caso de que se pueda abrir la conexin de

forma correcta se proceder a trabajar con la Base de Datos

MANEJANDO EXCEPCIONES
CON LA CONEXIN

MANEJANDO EXCEPCIONES
CON LA CONEXIN

OBTENIENDO
DATOS

Se utiliza un objeto SqlCommand para


realizar la consulta, utilizando la conexin
Existente.
Los datos de la tabla quedan en un objeto
Tipo SqlDataReader

AGREGANDO LOS REGISTROS


DE LA TABLA AL COMPONENTE

Muy importante:
Siempre cerrar la conexin

CREANDO CONSULTA DE
PROYECTO CLNICA:
CONSULTA POR DOCTOR

Una vez agregados los datos (nombres) al combobox, hay que obtener los

datos de manera individual.

Agregar consulta de todos los mdicos en un datagrid

UTILIZANDO LIBRERAS
Como se ha estado observando, tenemos que estar

conectndonos de manera recurrente a las bases de datos.

Cuando hay una serie de instrucciones que son repetitivas en

un proyecto, lo ideal es hacer una librera que contenga los


mtodos adecuados para que sean incluidas como una librera.

De tal manera se invoquen los mtodos de las libreras y as

evitar la repeticin de instrucciones (innecesarias de cdigo).

LIBRERA PARA TRABAJAR


CON BD
Clase UsoBD:

Funcin ConectaBD: Permite la conexin a la Base de Datos, regresa

un objeto SqlConnection y regresando null en caso de que no se


pueda conectar, se recibe como parmetro el string de conexin.

Funcin Consulta: Regresa un objeto SqlDataReader, recibe como

parmetro la instruccin SQL Select con la consulta y un objeto


SqlConnection . En caso de no tener registros regresa null.

MODIFICAR PROYECTO
Agregar en todas las conexiones a la B.D. el uso de la librera UsoBD, tanto

para conexin como para consulta.

Optativamente pudiera modificarse esta librera para agregar otras

funcionalidades.

PASOS PARA AGREGAR


LIBRERAS (.DLL)
Irse a la ventana del explorador de soluciones y ubicar el componente de

Referencias (References)

Presionar clic derecho para que aparezca el men contextual (add

Reference).

Ubicar el archivo DLL y seleccionarlo

PASOS PARA AGREGAR


LIBRERAS (.DLL)
Agregar la referencia en el formulario en donde se vaya a utilizar la

conexin:

Utilizar el mtodo ConectaBD para conectarse a la BD.

PASOS PARA AGREGAR


LIBRERAS (.DLL)
Utilizar el mtodo Consulta:

Al final se tiene que cerrar la conexin: con.Close()

Utilizar la conexin y mtodo consulta en el proyecto

COMANDOS DE ACCIN
Los comandos de Accin son las instrucciones SQL que no pertenecen a

consultas, por ejemplo:


INSERT
UPDATE
DELETE

Para estas instrucciones se utiliza el mtodo ExecuteNonQuery de un

objeto SqlCommand (lugar del ExecuteReader),

Para el proyecto de Clinica se insertaran datos y se actualizarn en las

tablas creadas

UTILIZANDO
SQLCOMMAND

Se crea una cadena con la instruccin INSERT

Se declara
Se deben de manejar parmetros para poder pasar los valores
la
instruccin
obtenidos por ejemplo de un textbox.
INSERT
Ejemplo:

Que se
esta
haciendo
aqu?
En esta lnea se crea el objeto SqlCommand,
con el String de la instruccin y la conexin
Aqu se agrega
cada parmetro
como valor a la
instruccin
INSERT

SE EJECUTA
EXECUTENONQUERY

Вам также может понравиться