Introducción
Una tarea muy sencilla, pero que se convierte en una piedra en el zapato para los que comenzamos a desarrollar sistemas de información, es la de realizar una conexión correctamente con una base de datos (en este caso SQL server) y ejecutar algunas sentencias.
Que es una conexión a base de datos y para que se utiliza ?
Una conexión es como una clase de puente que realizamos desde nuestro lenguaje de programación hasta una base de datos, y se utiliza para acceder a ciertos recursos que nos provee el motor de base de datos, estos recursos entre otras cosas son poder ejecutar sentencias de algún tipo.
Para poder acceder a un motor de bases de datos necesitamos autenticarnos, entonces uno de los primeros pasos será crear unas credenciales con suficientes permisos para ejecutar sentencias !
Creamos la base de datos
- Ingresamos al SQL management studio y ejecutamos esta sentencia para crear una base de datos de prueba:
CREATE DATABASE Prueba
Creamos el usuario
- Creamos un usuario (este también se puede crear por sentencias, pero me parece mas engorroso que por el management studio), navegamos entre los nodos hasta:
Security – Logins
Clic derecho sobre Logins y seleccionamos New Login…:
- No abre la siguiente pantalla donde en la pestaña General podemos seleccionar el tipo de autenticación (Integrada con windows o de SQL server), politicas de seguridad de contraseña:
- Luego nos vamos a la pestaña User Mapping, aquí podremos seleccionar la base de datos a la que lo deseamos asociar y uno de varios roles que vienen por defecto:
- Observen que seleccione la base de datos Prueba (que creamos previamente ) y el rol db_owner, este rol es como el administrador (permite ejecutar cualquier tipo de sentencia), dependiendo de la necesidad, seleccionariamos el tipo de rol; por ejemplo: db_datareader (definimos permisos de lectura) y sobre db_datawriter (definimos permisos de escritura).
- Damos clic en el botón Ok y tendremos nuestro usuario creado.
Probamos el usuario
Una vez creado, no esta de más probar que funcione correctamente un inicio de sesión
Hacemos clic en Connect Y seleccionamos Database Engine …
En la pantalla que nos aparece, seleccionamos, nombre de servidor, tipo de autenticación, y siendo el caso el usuario y la contraseña.
Clic en el botón Connect, expandimos el nodo de la base de datos Prueba, y ejecutamos alguna sentencia cómo manera de ensayo:
SELECT GETDATE()
Como ven, este usuario ya puede ingresar a la base de datos y ejecutar sentencias de algún tipo
Crear la tabla
Para hacer el ejemplo mas completo, vamos a crear una tabla de prueba llamada Empleados y le adicionamos algunos registros:
CREATE TABLE Empleados (IdEmpleado INT IDENTITY(1,1), Nombres VARCHAR(50), Apellidos VARCHAR(50), Correo VARCHAR(50), Telefono VARCHAR(50))
INSERT INTO Empleados (Nombres, Apellidos, Correo, Telefono) VALUES ('Aquiles', 'Brinco', 'aquilesbrinco@outlook.com', '4010068')
INSERT INTO Empleados (Nombres, Apellidos, Correo, Telefono) VALUES ('Armando', 'Casas', 'armandocasas@outlook.com', '64681684')
INSERT INTO Empleados (Nombres, Apellidos, Correo, Telefono) VALUES ('Débora', 'Melo', 'deboramelo@outlook.com', '651674')
INSERT INTO Empleados (Nombres, Apellidos, Correo, Telefono) VALUES ('Elsa', 'Pato', 'elsapato@outlook.com', '698541488')
INSERT INTO Empleados (Nombres, Apellidos, Correo, Telefono) VALUES ('Susana', 'Oria', 'susanaoria@outlook.com', '546654651654')
INSERT INTO Empleados (Nombres, Apellidos, Correo, Telefono) VALUES ('Aquiles', 'Bailo', 'aquilesbailo@outlook.com', '5465465465')
INSERT INTO Empleados (Nombres, Apellidos, Correo, Telefono) VALUES ('Elvio', 'Lao', 'elviolao@outlook.com', '301864546')
INSERT INTO Empleados (Nombres, Apellidos, Correo, Telefono) VALUES ('Elva', 'Gina', 'elvagina@outlook.com', '654687486')
INSERT INTO Empleados (Nombres, Apellidos, Correo, Telefono) VALUES ('Elmer', 'Curio', 'elmercurio@outlook.com', '3017768305')
Para visualizar nuestra información, basta con hacer un select a la tabla desde el Management Studio:
SELECT IdEmpleado, Nombres, Apellidos, Correo, Telefono
FROM Empleados
Con esto ya tenemos listo lo que debemos hacer a nivel del motor de base de datos.
Crear string de conexión
Una pregunta muy realizada, es cómo crear el string de conexión; es decir, en que orden debe de ir el usuario, la base de datos, la clave, etc para poder conectarme con el motor como lo hicimos con el SQL Management Studio ….
La solución, es crear un archivo .udl, este nos proveé una pantalla (parecida a la de SQL server) en la que vamos a poder crear nuestro string de conexión.
Entonces creamos un nuevo archivo de texto:
Le cambiamos la extensión de .txt a .udl, el nombre no importa, yo lo llamé Conexion.
Abrimos el archivo y nos vamos a la pantalla Provider:
Verificamos que esté seleccionado SQL server, luego cambiamos a la pestaña Connection e ingresamos nombre de servidor, tipo de autenticación, y siendo el caso el usuario y la contraseña.
Muy importante seleccionar la lista de chequeo Allow saving password (eso nos permitirá que la clave quede almacenada en el string de conexión) y seleccionar la base de datos.
Hacemos clic en el botón Test Connection y si todo lo hicimos bien, nos saldrá un mensaje como este:
Luego hacemos clic en el botón Ok.
Conformamos el siguiente dialogo:
Basicamente nos avisa que la contraseña se va a guardar en el archivo.
Luego, hacemos clic derecho sobre el .udl y lo abrimos con un editor de texto:
Como verán, este es el contenido del archivo:
[oledb]
; Everything after this line is an OLE DB initstring
Provider=SQLOLEDB.1;Password=a54321;Persist Security Info=True;User ID=Administrador;Initial Catalog=Prueba;Data Source=C-CPEREZ\SQL2008R2
Y el string de conexión es el que esta en negrita.
Realizar la conexión desde el lenguaje de programación (C#)
Una vez hayamos cumplido los pasos anteriores, nos disponemos a crear un proyecto de tipo Consola en Visual Studio.
En el Mein ingresamos el siguiente código:
static void Main(string[] args)
{
var ConnectionString = @"Password=a54321;Persist Security Info=True;User ID=Administrador;Initial Catalog=Prueba;Data Source=C-CPEREZ\SQL2008R2";
using (SqlConnection con = new SqlConnection(ConnectionString))
{
con.Open();
using (SqlCommand Command = new SqlCommand("SELECT IdEmpleado, Nombres, Apellidos, Correo, Telefono FROM Empleados", con))
using (SqlDataReader Reader = Command.ExecuteReader())
{
while (Reader.Read())
{
Console.WriteLine("{0} - {1} - {2} - {3} - {4}",
Reader.GetInt32(0), Reader.GetString(1), Reader.GetString(2), Reader.GetString(3), Reader.GetString(4));
}
}
}
Console.ReadKey();
}
Observen que la variable ConnectionString tiene lo que nos genero el .udl
Estamos llendo a base de datos y ejecutando la siguiente sentencia:
SELECT IdEmpleado, Nombres, Apellidos, Correo, Telefono
FROM Empleados
Recuperamos lo que nos retornó la consulta y lo lo visualizamos en la consola:
De esa misma manera podemos ejecutar nuestras instrucciones INSERT, UPDATE, DELETED para realizar cualquier tipo de operación a la información !!!!
Código
Desde el siguiente link, pueden descargarse el ejemplo realizado con Visual Studio 2010 y SQL server 2008 R2.
Muy buena información, sólo que no entendí desde dónde debo acceder para crear un "Nuevo Archivo de Texto", no lo especifica. Y es el primer paso de todos... Podrías detallarme esto? Gracias!
ResponderEliminarHola,
ResponderEliminarLa verdad no te entiendo bien la pregunta, sin embargo el archivo de texto se puede crear en cualquier ubicación, lo debes de tener en cuenta es que el motor de base de datos debe de ser accesible en terminos de RED desde la ubicación donde estás creando el txt...
Si es en la misma máquina no vas a tener problemas, pero si instalaste el motor en una maquina A y estás creando el txt o udl desde una maquina B, debes de tener en cuenta que deben de estar dentro de la misma red.
Saludos Unknown,
QUEMAN VIVO A SUPUESTO BRUJO MAYA [VIDEO]
ResponderEliminarCerca de San Luis en Guatemala, fue linchado y quemado vivo una persona conocido como el “Abuelo Domingo” pero su nombre real era “Choc Che” y según sus vecinos, esta persona era encargada de dañar a varios vecinos y causarles problemas a los matrimonios de la aldea.
En el video se puede ver que la persona corre desesperadamente prendida en llamas.
Link de la noticia sobre brujeria