You are on page 1of 31

TECNOLÓGICO NACIONAL DE MÉXICO

Instituto Tecnológico Superior de Guasave


Ingeniería en Sistemas Computacionales
Tópicos Avanzados de Programación
Unidad IV: Acceso a Datos

Itsguasave.edu.mx
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.
TÓPICOS AVANZADOS DE PROGRAMACIÓN Introducció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.
TÓPICOS AVANZADOS DE PROGRAMACIÓN ¿Qué es Origen de Datos?
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.
TÓPICOS AVANZADOS DE PROGRAMACIÓ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 Elementos de la cadena de conexió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.
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
TÓPICOS AVANZADOS DE PROGRAMACIÓN
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”;

Todos estos ejemplos trabajan sobre una instancia del servidor local.
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.

Listado de Controles
• string: el tipo de dato string que representa una cadena (no es propiamente
un control), se utiliza para generar la estructura de una consulta o un query
que tiene como objeto alterar el contenido de los registros de una o varias
tablas en la BD.
TÓPICOS AVANZADOS DE PROGRAMACIÓN
• 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
• 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();
TÓPICOS AVANZADOS DE PROGRAMACIÓN
• 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
• Ejercicio: El ejemplo visto en la diapositiva anterior llévelo a una aplicación
de consola que se conecte a una BD de su SMBD local y despliegue en
pantalla el contenido de una tabla, usted selecciona la tabla y los campos a
desplegar que deben ser al menos 3.
TÓPICOS AVANZADOS DE PROGRAMACIÓN
Manipulación de Datos
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.
TÓPICOS AVANZADOS DE PROGRAMACIÓN
Ejemplo de un INSERT:

string cadena = @"Data Source = JOSEANTO\SQLEXP;Integrated Security = SSPI; “+


“Initial Catalog = ventas"; Envío de
SqlConnection conectar = new SqlConnection(cadena); parámetros
conectar.Open();
string consulta = “INSERT INTO Facturas VALUES (@orden, @cliente, @fecha)“;
SqlCommand comando = new SqlCommand(consulta, conectar);
comando.Parameters.AddWithValue("@orden", orden.Text.ToString()); Valores de los
parámetros
comando.Parameters.AddWithValue("@cliente", cliente.Text.ToString()); obtenidos
comando.Parameters.AddWithValue("@fecha", fecha.Text.ToString()); desde TextBox
comando.ExecuteNonQuery();
conectar.Close(); Ejecutar un query
que no es consulta
TÓPICOS AVANZADOS DE PROGRAMACIÓN
Ejemplo de un DELETE:

string cadena = @"Data Source = JOSEANTO\SQLEXP;Integrated Security = SSPI; “+


“Initial Catalog = ventas"; Envío de
parámetros
SqlConnection conectar = new SqlConnection(cadena);
Valor del
conectar.Open(); parámetro
string consulta = “DELETE FROM Facturas WHERE F_ordenID = @orden“; obtenido desde
un TextBox
SqlCommand comando = new SqlCommand(consulta, conectar);
comando.Parameters.AddWithValue("@orden", orden.Text.ToString());
comando.ExecuteNonQuery(); Ejecutar un query
que no es consulta
conectar.Close();
TÓPICOS AVANZADOS DE PROGRAMACIÓN
Ejemplo de un UPDATE:

string cadena = @"Data Source = JOSEANTO\SQLEXP;Integrated Security = SSPI; “+


“Initial Catalog = ventas";
SqlConnection conectar = new SqlConnection(cadena);
conectar.Open();
Envío de
string consulta = “UPDATE Facturas SET F_fecha=@fecha ”+ parámetros
“WHERE F_ordenID = @orden“;
SqlCommand comando = new SqlCommand(consulta, conectar); Valor del
comando.Parameters.AddWithValue("@orden", orden.Text.ToString()); parámetro
obtenido desde
comando.Parameters.AddWithValue("@fecha", fecha.Text.ToString()); TextBox
comando.ExecuteNonQuery();
conectar.Close(); Ejecutar un query
que no es consulta
TÓPICOS AVANZADOS DE PROGRAMACIÓN
Ejercicio: El ejemplo visto en la diapositiva anterior llévelo a una aplicación de
consola que se conecte a una BD de su SMBD local y capture los campos de una
tabla, deben ser al menos 3 campos, debe realizar lo siguiente:
• Desplegar un menú de opciones donde pregunte si se desea, Insertar, Eliminar o
Salir.
Proceso para insertar:
• Al capturar un nuevo registro debe revisar si este ya existe, de ser así, debe
mostrar su contenido en pantalla.
• Si el registro no existe debe insertarlo.
Proceso para eliminar:
• Se debe preguntar el registro, en caso de existir se muestra en pantalla en
contenido.
• Preguntar si esta seguro de eliminar, de ser sí, eliminar el registro.
TÓPICOS AVANZADOS DE PROGRAMACIÓN
Visualizar Datos con un DataGridView

• DataGridView es un componente gráfico 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
Ejemplo de como Visualizar Datos con un DataGridView en Tiempo de Ejecución
string conectar = @”Data Source = JOSEANTO\SQLEXP; Integrated Security = SSPI; “+ Cadenas de
“ Initial Catalog = NORTHWND”; conexión y
selección
string cadenaSQL = "SELECT * FROM orders";
Origen de
dataGridView2.DataSource = customersBindingSource; Datos

SqlDataAdapter adaptador = new SqlDataAdapter(cadenaSQL, conectar); Controles para


selección de
SqlCommandBuilder commandBuilder = new SqlCommandBuilder(adaptador); info.

DataTable tabla = new DataTable();


adaptador.Fill(tabla);
customersBindingSource.DataSource = tabla; Llenado del
DataGridView
dataGridView2.AutoResizeColumns(
DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader);
TÓPICOS AVANZADOS DE PROGRAMACIÓN
Proyecto integrador de la unidad:

• 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.

You might also like