tópicos avanzados de programación - unidad 4 acceso a datos

29
TECNOLÓGICO NACIONAL DE MÉXICO Ingeniería en Sistemas Computacionales Tópicos Avanzados de Programación Unidad IV: Acceso a Datos Este material didáctico fue desarrollado para la asignatura de Tópicos Avanzados de Programación, del plan SCD-1027 2016 de Ing. En Sistemas Computacionales

Upload: jose-antonio-sandoval-acosta

Post on 13-Apr-2017

1.573 views

Category:

Engineering


68 download

TRANSCRIPT

TECNOLÓGICO NACIONAL DE MÉXICO

Ingeniería en Sistemas ComputacionalesTópicos Avanzados de Programación

Unidad IV: Acceso a Datos

Este material didáctico fue desarrollado para la asignatura de Tópicos Avanzados de Programación, del plan SCD-1027 2016 de Ing. En Sistemas Computacionales

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Competencia: Establece conexiones a diferentes orígenes de datos para su manipulación y visualización de información.

En la actualidad los lenguajes de programación no traen incorporada una base de datos, por tal motivo es necesario conectar el lenguaje de programación con Sistema Gestor de Base de Batos (SGBD).

ODBC (Open Database Connectivity) es un estándar de acceso a bases de datos, que permite mantener independencia entre los lenguajes de programación, los sistemas de bases de datos (las bases de datos y su software gestor), y los sistemas operativos.

ODBC inserta una "capa" entre la aplicación y el SGBD. Es llamada "manejador de base de datos". Traduce las consultas a la base de datos por parte de la aplicación a una consulta que el SGBD comprenda. Para esto, tanto la aplicación como el SGBD deben ser compatibles con ODBC.

Introducción TÓ

PICO

S AV

ANZA

DO

S D

E PR

OG

RAM

ACIÓ

N

Un origen de datos está formado por la procedencia de los datos y la información de conexión necesaria para tener acceso a los mismos.

Ejemplos de orígenes de datos son Microsoft Access, Microsoft SQL Server, Oracle RDBMS, una hoja de cálculo en Excel y un archivo de texto.

Ejemplos de información de conexión son la ubicación del servidor, el nombre de la base de datos, el ID de inicio de sesión, la contraseña y diversas opciones de controlador ODBC que describen cómo conectarse al origen de datos.

¿Qué es Origen de Datos? TÓ

PICO

S AV

ANZA

DO

S D

E PR

OG

RAM

ACIÓ

N

Crear un Origen de Datos • Para crear un origen de datos se debe tener instalado tanto SQL Server como

Visual Studio. En éste último debemos abrir el menú “Proyecto” y la opción “Agregar nuevo origen de datos” hacer clic.

TÓPICOS AVANZADOS DE PROGRAMACIÓN

• Aparecerá un cuadro de dialogo y allí debemos seleccionar el ícono de Base de Datos, dar clic en siguiente>.• En la siguiente pantalla seleccionamos el ícono de Conjunto de Datos, dar clic

en Siguiente>.

TÓPICOS AVANZADOS DE PROGRAMACIÓN

• Aparecerá la pantalla para seleccionar la conexión de datos, clic en el botón “Nueva conexión”. • En la siguiente pantalla nos pedirá el nombre del

server, la instancia y la DB con la que nos conectaremos. Dar clic en Aceptar y Siguiente>.

TÓPICOS AVANZADOS DE PROGRAMACIÓN

• Ahora podemos ver la cadena de conexión generada por el sistema, dando clic en el signo “+” de la pantalla. El texto que aparezca como cadena debe seleccionarse y copiarse ya que se requiere para aplicarse en los programas que crearemos.

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Finalmente nos aparecerá la pantalla para elegir Objetos de la Base de Datos, seleccionar por el momento “Tablas”, dar clic en Finalizar.

TÓPICOS AVANZADOS DE PROGRAMACIÓN

• Una vez que se logró la conexión al Origen e Datos es posible ver el contenido por medio de la ventana del mismo nombre la cual muestra el DataSet creado y que contiene una liga hacia las tablas de la BD relacionada.• Con esta ventaja podemos agregar componentes de

datos a nuestras aplicaciones los cuales podrán extraer la información de la BD de forma directa, el más utilizado para esto es el DataGridView.

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Cadena de Conexión• Es una cadena de texto que conecta al lenguaje de programación con el

gestor de base de datos seleccionado.

Elementos de la cadena de conexión Provider: Establece el nombre del proveedor para la conexión (sólo aplica

para OleDBConnection). Connection Timeout: Establece el tiempo en segundos para esperar a una

conexión antes de terminar el intento y generar una excepción, por omisión es 15.

Initial Catalog: El nombre de la base de datos, si se omite se utiliza la predeterminada del usuario.

TÓPICOS AVANZADOS DE PROGRAMACIÓN

TÓPI

COS

AVAN

ZAD

OS

DE

PRO

GRA

MAC

IÓN

Password: El password del usuario.

User ID: El login del usuario.

Integrated Security: Establece el mecanismo de autenticación con el servidor, los valores posibles son TRUE y FALSE, sólo aplica para SqlConnection.

Persist Security: Cuando se establece a FALSE, la información sensitiva a la seguridad como la contraseña no es mostrada una vez que se ha establecido la conexión, por omisión es FALSE.

Elementos de la cadena de conexión

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Ejemplo:

data source = HP\SQLserver; initial catalog = BaseDatos; user id = Usuario; password = “123456”

La cadena de conexión puede ser diferente dependiendo del sistema gestor de BD con el que debamos interactuar

Otros ejemplos:

data source = “server\bd_itsg”; initial catalog = “escolares”; user id = “admin”; password = “123456”;

data source = (local)\bd_itsg; initial catalog = “escolares”; user id = “admin”; password = “123456”;

data source = 127.0.0.1\bd_itsg; initial catalog = “escolares”; Integrated security = “true”;

data source = .\bd_itsg; initial catalog = “escolares”; user id = “admin”; password = “123456”;

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Controles de la Base de Datos

• Los controles de la base de datos son una serie de comandos o métodos que sirven para realizar la conexión con la BD y el intercambio de información con la misma

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Listado de Controles

• String: Tipo de dato que representa una cadena (no es propiamente un control, se utiliza para generar la estructura de una consulta)• SqlConnection: Representa una conexión abierta a una base de datos de SQL

Server :Propiedades y métodos: open(), close()

Ejemplo:String cadena = “data source = (local)\SQLEXP; initial catalog = ‘escolares’; user id = ‘admin’; password = ‘123456’”;SqlConnection conectar = new SqlConnection(cadena);conectar.Open();

TÓPICOS AVANZADOS DE PROGRAMACIÓN

TÓPICOS AVANZADOS DE PROGRAMACIÓN•SqlCommand: Representa un procedimiento almacenado o una instrucción

de Transact-SQL que se ejecuta en una base de datos de SQL Server.Propiedades y métodos: • CommandText• CommandType• Connection,• Parameters• ExecuteReader()

String consulta = "SELECT F_ordenID, F_cliente FROM facturas;"SqlCommand commando = new SqlCommand(consulta, conectar);conectar.Open();

• SqlDataReader: Proporciona una forma de leer una secuencia de filas sólo hacia delante en una base de datos de SQL Server

Propiedades y métodos: Read(); GetValue();

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Ejemplo:string cadena = @”Data Source = JOSEANTO\SQLEXP;Integrated Security = SSPI; “ + “ Initial Catalog = ventas”;SqlConnection conectar = new SqlConnection(cadena);conectar.Open();string consulta = “SELECT F_ordenID, F_cliente FROM facturas;”;SqlCommand comando = new SqlCommand(consulta, conectar);SqlDataReader lector = comando.ExecuteReader();try { while (lector.Read()) { Console.WriteLine(String.Format(“Orden: {0}, Cliente: {1}", lector[0], lector[1])); }} finally { lector.Close(); conectar.Close();}

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Manipulación de DatosTÓPICOS AVANZADOS DE PROGRAMACIÓN

Para realizar la manipulación de datos por medio de una conexión debemos ejecutar ciertos comandos o controles, de igual forma debe lograrse previamente una conexión a la BD.

El control SqlCommand(cadenaSQL, conexión) que se vio previamente es el encargado de realizar la manipulación de datos, los cuales son enviados por medio de la cadenaSQL.

La cadenaSQL puede contener instrucciones de inserción, modificación o eliminación de datos.

Ejemplo de un INSERT:string cadena = @"Data Source = JOSEANTO\SQLEXP;Integrated Security = SSPI; “+ “Initial Catalog = ventas";SqlConnection conectar = new SqlConnection(cadena);conectar.Open();string consulta = “INSERT INTO Facturas VALUES (@orden, @cliente, @fecha)“;SqlCommand comando = new SqlCommand(consulta, conectar);comando.Parameters.AddWithValue("@orden", orden.Text.ToString());comando.Parameters.AddWithValue("@cliente", cliente.Text.ToString());comando.Parameters.AddWithValue("@fecha", fecha.Text.ToString());comando.ExecuteNonQuery(); conectar.Close();

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Envío de parámetros

Valor del parámetro

obtenido desde TextBox

Ejecutar un query que no es consulta

Ejemplo de un DELETE:

string cadena = @"Data Source = JOSEANTO\SQLEXP;Integrated Security = SSPI; “+ “Initial Catalog = ventas";SqlConnection conectar = new SqlConnection(cadena);conectar.Open();string consulta = “DELETE FROM Facturas WHERE F_ordenID = @orden“;SqlCommand comando = new SqlCommand(consulta, conectar);comando.Parameters.AddWithValue("@orden", orden.Text.ToString());comando.ExecuteNonQuery(); conectar.Close();

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Envío de parámetros

Valor del parámetro

obtenido desde un TextBox

Ejecutar un query que no es consulta

Ejemplo de un UPDATE:

string cadena = @"Data Source = JOSEANTO\SQLEXP;Integrated Security = SSPI; “+ “Initial Catalog = ventas";SqlConnection conectar = new SqlConnection(cadena);conectar.Open();string consulta = “UPDATE Facturas SET F_fecha=@fecha ”+ “WHERE F_ordenID = @orden“;SqlCommand comando = new SqlCommand(consulta, conectar);comando.Parameters.AddWithValue("@orden", orden.Text.ToString());comando.Parameters.AddWithValue("@fecha", fecha.Text.ToString());comando.ExecuteNonQuery(); conectar.Close();

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Envío de parámetros

Ejecutar un query que no es consulta

Valor del parámetro

obtenido desde TextBox

Visualizar Datos con un DataGridView

• DataGridView es un componente que puede almacenar datos que son obtenidos desde una tabla en particular de una BD.• Para agregar uno a pantalla debemos abrir el

Cuadro de Herramientas y arrastrar el componente.• Una vez que lo colocamos en su lugar

debemos ir a la ventana de propiedades e indicar el Origen de Datos (Data Source).

TÓPICOS AVANZADOS DE PROGRAMACIÓN

• En la propiedad Data Source buscamos el origen de datos que creamos previamente y seleccionamos la tabla de donde obtendremos la información para llenar el DataGridView.• Una vez seleccionado el origen, en el modo de diseño aparecen los nombres

de las columnas de la tabla pero no la información, esta, aparece cuando ejecutamos nuestra aplicación.

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Visualizar Datos con un DataGridView en Tiempo de Ejecución

• Un DataGridView también puede ser llenado de información proveniente de una tabla en particular pero en tiempo de ejecución, sin necesidad de indicar el origen de los datos en la etapa de diseño.

• Para esto se requiere una serie de instrucciones que conectan a la BD y al origen de datos.

TÓPICOS AVANZADOS DE PROGRAMACIÓN

string conectar = @”Data Source = JOSEANTO\SQLEXP; Integrated Security = SSPI; “+ “ Initial Catalog = NORTHWND”;string cadenaSQL = "Select * from orders";

dataGridView2.DataSource = customersBindingSource;

SqlDataAdapter adaptador = new SqlDataAdapter(cadenaSQL, conectar);SqlCommandBuilder commandBuilder = new SqlCommandBuilder(adaptador);

DataTable tabla = new DataTable();adaptador.Fill(tabla);customersBindingSource.DataSource = tabla;dataGridView2.AutoResizeColumns( DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader);

TÓPICOS AVANZADOS DE PROGRAMACIÓNCadenas de conexión y selección

Origen de Datos

Controles para selección de

info.

Llenado del DataGridView

Ejercicio:

• Instale la base de datos NORTHWND en su SQL Server local.• Realice la conexión a origen de datos desde Visual Studio.• Desarrolle un programa que se conecte a la dicha BD y pueda capturar,

modificar, consultar y eliminar el contenido de la tabla Customers.• Además el contenido de la tabla Customers debe ser mostrado en una

pantalla adicional por medio de un componente DataGridView, en el cual los datos no pueden ser modificados por el usuario.

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Bibliografía

• Patrick LeBlanc. 2015. Microsoft Visual C# 2013 Step by Step. EE. UU. Octal Publishing, Inc. ISBN: 978-0-7356-8183-5.

TÓPICOS AVANZADOS DE PROGRAMACIÓN