tag:blogger.com,1999:blog-154374216103426372024-03-05T14:33:22.428-08:00Apuntes sobre desarrollo de softwareCristian Pérezhttp://www.blogger.com/profile/09224372228200066820noreply@blogger.comBlogger4125tag:blogger.com,1999:blog-15437421610342637.post-52284657185807532952012-10-25T09:41:00.001-07:002012-10-25T09:41:38.178-07:00[C#] Monitoreando una IP con un Timer<p><font size="4" face="Arial Narrow"></font> </p> <p><strong><font size="4" face="Arial Narrow">Introducción:</font></strong></p> <p><font size="4" face="Arial Narrow">Una tarea bastante solicitada en el desarrollo de una aplicación, es necesitar que un bloque de código se ejecute durante <strong>X</strong> cantidad de veces; ya sea para monitorear el estado de un servicio web, estar revisando un valor en base de datos, estar esperando a que se copie un archivo en una ubicación <strong>X</strong>, entre otras cosas …</font></p> <p><font size="4" face="Arial Narrow">En este caso vamos a realizar una aplicación de consola que encargue de monitorear cada segundo si una IP se encuentra accesible en terminos de red.</font></p> <p><font size="4" face="Arial Narrow">El framework de .net nos ofrece un excelente objeto llamado <strong>timer</strong> para realizar esta tarea (digo excelente por que es de los objetos que mas me gusta utilizar). </font></p> <p><font size="4" face="Arial Narrow">Está es la documentación oficial:</font></p> <p><a href="http://msdn.microsoft.com/es-es/library/system.timers.timer(v=vs.80).aspx" target="_blank"><font size="4" face="Arial Narrow">Timer (Clase)</font></a></p> <p><strong><font size="4" face="Arial Narrow">Creando el objeto timer</font></strong></p> <p><font size="4" face="Arial Narrow">Sólo necesitamos modificar dos cosas del timer para ponerlo a funcionar:</font></p> <ul> <li><font size="4" face="Arial Narrow">Modificar el atrubuto </font><a href="http://msdn.microsoft.com/es-es/library/system.timers.timer.interval(v=vs.90).aspx" target="_blank"><font size="4" face="Arial Narrow">Interval</font></a><font size="4" face="Arial Narrow"> que cómo mencionan los libros en linea:</font></li></ul> <blockquote> <p><font size="4" face="Arial Narrow">“Obtiene o establece el intervalo en el que se provoca el evento </font><a href="http://msdn.microsoft.com/es-es/library/system.timers.timer.elapsed(v=vs.90).aspx"><font size="4" face="Arial Narrow">Elapsed</font></a><font size="4" face="Arial Narrow">.”</font></p></blockquote> <ul> <li><font size="4" face="Arial Narrow">Agregar el evento </font><a href="http://msdn.microsoft.com/es-es/library/system.timers.timer.elapsed(v=vs.90).aspx" target="_blank"><font size="4" face="Arial Narrow">Elapsed</font></a><font size="4" face="Arial Narrow"> que respectivamente:</font></li></ul> <blockquote> <p><font size="4" face="Arial Narrow">“Se produce cuando transcurre el intervalo.”</font></p></blockquote> <p><font size="4" face="Arial Narrow">El ejemplo nos quedaría entonces de esta forma:</font></p> <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:54715382-ef92-4409-befe-b609d0b10610" class="wlWriterEditableSmartContent"><pre name="code" class="c#"> static void Main(string[] args)<br /> {<br /> System.Timers.Timer objTimer = new System.Timers.Timer();<br /> objTimer.Interval = 1000;<br /> objTimer.Elapsed += new System.Timers.ElapsedEventHandler(objTimer_Elapsed);<br /> objTimer.Start();<br /> Console.ReadLine();<br /> }</pre></div><br /><p><font size="4" face="Arial Narrow">El evento se ejecutaría cada un segundo (mil milisegundos) y nos quedaría así :</font></p><br /><div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:05a55a2c-5a0d-476a-8dab-dbb66def8500" class="wlWriterEditableSmartContent"><pre name="code" class="c#"> static void objTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)<br /> {<br /> var Ip = "10.35.40.70";<br /><br /> if (RealizarPing(Ip))<br /> {<br /> Console.WriteLine(string.Format("La Ip: {0} se encuentra accesible",Ip));<br /> }<br /> else<br /> {<br /> Console.WriteLine(string.Format("La Ip: {0} NO encuentra accesible", Ip));<br /> }<br /> }<br /><br /> static bool RealizarPing(string Ip)<br /> {<br /> Ping p = new Ping();<br /> try<br /> {<br /> PingReply reply = p.Send(Ip, 3000);<br /> if (reply.Status == IPStatus.Success)<br /> return true;<br /> }<br /> catch { }<br /> return false;<br /> }</pre></div><br /><p><font size="4" face="Arial Narrow">Para poder instanciar el objeto Ping, deben de referenciar el siguiente espacio de nombres:</font></p><br /><div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:c550698c-dd84-4051-bf52-5141f1a3a8f1" class="wlWriterEditableSmartContent"><pre name="code" class="c#">using System.Net.NetworkInformation;</pre></div><br /><p><font size="4" face="Arial Narrow">En mi caso la Ip <strong>10.35.40.70</strong> es de otro computador que tengo en mi casa conectado a la misma red; deben de cambiarla por cualquier otra que sea <strong>accesible en terminos de red</strong> para realizar la prueba.</font></p><br /><p><font size="4" face="Arial Narrow">Al ejecutar la aplicación tendremos algo como esto:</font></p><br /><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjij47SVKHlXbcJQp5AXhw8KG7F28QWM1ikMMJIB44nrwkrCgxJy_9XAUtJOLuRbqrFLj4Evz7Z9WZcq5PjigRh0UE3sfx0Glvu8hIf-wYAHXK99_YO0XClorX-lhKTqt62G2aaIkErRJ0/s1600-h/Untitled%25255B3%25255D.png"><font size="4" face="Arial Narrow"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="http://lh3.ggpht.com/-hWYNlau8sXk/UIlrwEExTUI/AAAAAAAAANA/aGM2VOXGZeo/Untitled_thumb%25255B1%25255D.png?imgmax=800" width="539" height="292"></font></a></p><br /><p><font size="4" face="Arial Narrow">Observen que hubo un momento en que la Ip <strong>NO</strong> se encontraba accesible; esto lo logre desconectando el cable de red por un momento para que la prueba fuera mas completa.</font></p><br /><p><strong><font size="4" face="Arial Narrow">Código</font></strong></p><br /><p><font size="4" face="Arial Narrow">El código realizado con visual studio 2010, lo pueden descargar desde está dirección:</font></p><br /><p><a href="https://skydrive.live.com/redir?resid=E86EA45CA85C749E!399" target="_blank"><font size="4" face="Arial Narrow">Descargar código</font></a></p><br /><p><font size="4" face="Arial Narrow"></font></p><br /><p><font size="4" face="Arial Narrow"></font></p> Cristian Pérezhttp://www.blogger.com/profile/09224372228200066820noreply@blogger.com1tag:blogger.com,1999:blog-15437421610342637.post-74424832672716325712012-10-24T13:37:00.001-07:002012-10-24T13:51:30.055-07:00[C#] Realizar una conexión con MYSQL<p><font size="4" face="Arial Narrow"></font> </p> <p><strong><font size="4" face="Arial Narrow">Introducción</font></strong> <p><font size="4" face="Arial Narrow">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 mysql) y ejecutar algunas sentencias.</font> <p><font size="4" face="Arial Narrow"></font> <p><strong><font size="4" face="Arial Narrow">Que es una conexión a base de datos y para que se utiliza ?</font></strong> <p><font size="4" face="Arial Narrow">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.</font> <p><font size="4" face="Arial Narrow">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 !</font> <p><font size="4" face="Arial Narrow"></font> <p><strong><font size="4" face="Arial Narrow">Creamos la base de datos</font></strong> <ul> <li><font size="4" face="Arial Narrow">Ingresamos a la <strong>consola</strong> de mysql con el usuario <strong>root</strong> (que es el administrador que definimos en el momento de la configuración del motor):</font></li></ul> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0e4spWPVPT59AMkzTR_3wglWHcAk1NmN_YsqNgM2vhUkeJ6INX5ULGFduTwM0-c0F7ZIUCeyWarVNoAlcSzVBVnq9MTagEbjv2UaGDe3TpGPYS1-zlYPlUHB1WE8vmvxLe5U5Z255Fs4/s1600-h/Untitled%25255B3%25255D.png"><font size="4" face="Arial Narrow"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="http://lh4.ggpht.com/-rGnDjOYPV7Q/UIhRW61I92I/AAAAAAAAAKg/iTZOQikHdnU/Untitled_thumb%25255B1%25255D.png?imgmax=800" width="491" height="385"></font></a></p> <p><font size="4" face="Arial Narrow">Y ejecutamos esta sentencia para crear una base de datos de prueba:</font></p> <p> <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:35825e7f-d128-4329-ba57-54ea5e30f879" class="wlWriterEditableSmartContent"><pre name="code" class="sql">CREATE DATABASE Prueba </pre></div></p><br /><p> </p><br /><p><strong><a href="http://lh3.ggpht.com/-g_I-Yg6xEoo/UIhRXjvsKuI/AAAAAAAAAKo/2IkN2RZehKQ/s1600-h/Untitled%25255B9%25255D.png"><font size="4" face="Arial Narrow"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-g8Bzr2asjQv0V9hlCgREObDon5RHzskhr7Dsz0DZmfEKQnOvKioWF1sCblwpU7T-bGTB8vQfpQNJ749S4TVUIfLkmqqBDvPwE7f-9YoOMxQWANJBEn80W39MapJ8nS1404rVD__5dHg/?imgmax=800" width="247" height="89"></font></a></strong></p><br /><p><strong></strong> </p><br /><p><strong><font size="4" face="Arial Narrow">Poniendo en uso la base de datos</font></strong></p><br /><p><font size="4" face="Arial Narrow">Para que nuestros comandos se apliquen a una base de datos en especifico, debemos de usar la intrucción USE, que basicamente lo que hace es definir la base de datos que queremos usar:</font></p><br /><div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:0616cc9b-a652-4de0-bb81-f648c06c00a2" class="wlWriterEditableSmartContent"><pre name="code" class="sql">USE Prueba;</pre></div><br /><p><strong><font size="4" face="Arial Narrow"></font></strong> </p><br /><p><strong><font size="4" face="Arial Narrow">Crear la tabla</font></strong></p><br /><p><font size="4" face="Arial Narrow">Para hacer el ejemplo mas completo, vamos a crear una tabla de prueba llamada <strong>Empleados </strong>y le adicionamos algunos registros:</font> <br /><br /><div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:5e55c04a-5e52-4fd7-9303-f714eb235acf" class="wlWriterEditableSmartContent"><pre name="code" class="sql">CREATE TABLE Empleados (IdEmpleado INT AUTO_INCREMENT, Nombres VARCHAR(50), Apellidos VARCHAR(50), Correo VARCHAR(50), Telefono VARCHAR(50), PRIMARY KEY (IdEmpleado ));<br /><br />INSERT INTO Empleados (Nombres, Apellidos, Correo, Telefono) VALUES ('Aquiles', 'Brinco', 'aquilesbrinco@outlook.com', '4010068');<br />INSERT INTO Empleados (Nombres, Apellidos, Correo, Telefono) VALUES ('Armando', 'Casas', 'armandocasas@outlook.com', '64681684');<br />INSERT INTO Empleados (Nombres, Apellidos, Correo, Telefono) VALUES ('Débora', 'Melo', 'deboramelo@outlook.com', '651674');<br />INSERT INTO Empleados (Nombres, Apellidos, Correo, Telefono) VALUES ('Elsa', 'Pato', 'elsapato@outlook.com', '698541488');<br />INSERT INTO Empleados (Nombres, Apellidos, Correo, Telefono) VALUES ('Susana', 'Oria', 'susanaoria@outlook.com', '546654651654');<br />INSERT INTO Empleados (Nombres, Apellidos, Correo, Telefono) VALUES ('Aquiles', 'Bailo', 'aquilesbailo@outlook.com', '5465465465');<br />INSERT INTO Empleados (Nombres, Apellidos, Correo, Telefono) VALUES ('Elvio', 'Lao', 'elviolao@outlook.com', '301864546');<br />INSERT INTO Empleados (Nombres, Apellidos, Correo, Telefono) VALUES ('Elva', 'Gina', 'elvagina@outlook.com', '654687486');<br />INSERT INTO Empleados (Nombres, Apellidos, Correo, Telefono) VALUES ('Elmer', 'Curio', 'elmercurio@outlook.com', '3017768305');<br /></pre></div><br /><br /><p><font size="4" face="Arial Narrow">Para visualizar nuestra información, basta con hacer un <strong>select</strong> a la tabla desde la consola:</font></p><br /><br /><div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:3cf6dafe-63a7-461a-b782-fe304186479d" class="wlWriterEditableSmartContent"><pre name="code" class="sql">SELECT IdEmpleado, Nombres, Apellidos, Correo, Telefono<br />FROM Empleados</pre></div><br /><br /><p> </p><br /><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBLQF2McIe47R1aOWnLu4Jebh0u60rfxqlWvUH2_OQJy1N_3jC8ysQN-Yh90Fl3KfDFpr3xzWu0CMGzCP3OC1HKE1jxE__u7AaEfOc7XM1XbmZLSPyStgfV6P4bhjpG7mG440mBO4q_w4/s1600-h/Untitled%25255B14%25255D.png"><font size="4" face="Arial Narrow"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLq3PUPTxcHChQRAo-C0fWam5WS8LywnmFDGBEwNzTf0C4vLGm67owmkbHcyne2YKYeSVcL5wwIuYL5ht6LkjQtrnDBzo8Mq8mjKVUITAzYHq7UD1CTimISZeYKVzdEmyd4G-yvd4yFlg/?imgmax=800" width="478" height="190"></font></a></p><br /><p><strong><font size="4" face="Arial Narrow"></font></strong> <p><strong><font size="4" face="Arial Narrow">Descargar el conector</font></strong> <br /><p><font size="4" face="Arial Narrow">Para poder realizar la conexión necesitamos de un conector o driver ofrecido por mysql, este lo podemos descargar desde está dirección:</font> <br /><p><a href="http://www.mysql.com/downloads/connector/net/" target="_blank"><font size="4" face="Arial Narrow">Download Connector/Net</font></a> <br /><p><font size="4" face="Arial Narrow">Para este caso puntual, aconsejo que descargen</font> <br /><p><strong><font size="4" face="Arial Narrow">Windows (x86, 32-bit), MSI Installer</font></strong> <br /><p><font size="4" face="Arial Narrow">Lo instalamos (next, typical, install) ya que posteriormente vamos a utilizar un archivo de este conector.</font> <br /><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTyMKWFT1flKA9ZHvYXFDJxQrXk8wR-1TOt86TSzXJ4z2wu_jKOVC30GFoKHzKpxGTHXie8TpvZ7Hm5hyphenhypheni5VJaIo2R1zBn5Mspwmj7GL243WH9RTgMDN081J7RAvraz1eapbHc7qy_nPQ/s1600-h/Untitled%25255B22%25255D.png"><font size="4" face="Arial Narrow"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2mDiUDh7O6cPqfArJ7x8loLYKJQys98hgTpSmsjHx_y7FM74aW4VlCMFT2oTmJHps7MjFjO_yCcjEziwxYlZ6TTN3IglFeLoN4AJKKqxVwK6vCQdlaFnfJi4elSXW9ZafKSTyAQUBaEI/?imgmax=800" width="468" height="383"></font></a> <br /><p><strong><font size="4" face="Arial Narrow"></font></strong> <p><strong><font size="4" face="Arial Narrow">Crear string de conexión</font></strong> <br /><p><font size="4" face="Arial Narrow">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.</font> <br /><p><font size="4" face="Arial Narrow">La manera correcta es la siguiente:</font> <br /><p><strong><font size="4" face="Arial Narrow">server=""; user=""; password=""; database=""</font></strong> <br /><p><font size="4" face="Arial Narrow">Dentro de las comillas va la respectiva información, en nuestro caso puntual:</font> <br /><p><strong><font size="4" face="Arial Narrow">server=localhost; user=root; password=a54321; database=Prueba</font></strong> <br /><p><strong><font size="4" face="Arial Narrow"></font></strong> <p><strong><font size="4" face="Arial Narrow">Realizar la conexión desde el lenguaje de programación (C#)</font></strong> <br /><p><font size="4" face="Arial Narrow">Una vez hayamos cumplido los pasos anteriores, nos disponemos a crear un proyecto de tipo Consola en Visual Studio.</font> <br /><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkacmFKBBqPqNhrqL-MqGTuRJrRg7xYq0lgxv9wDoT5z6M1LCpEHYL0naLNUT5rP-Fo2dka67cAcaP0VfGvJaiVQN2eHMcTkFKR6dTGjyDPX-srZPl-3V7HihpulYX9tak1dfLoB3xMgM/s1600-h/Untitled%25255B18%25255D.png"><font size="4" face="Arial Narrow"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="http://lh4.ggpht.com/-vzzQMl86jXo/UIhRdf5aC5I/AAAAAAAAALg/A5rWecfROe8/Untitled_thumb%25255B10%25255D.png?imgmax=800" width="531" height="386"></font></a> <br /><p><font size="4" face="Arial Narrow">Clic en Ok.</font> <br /><p><strong><font size="4" face="Arial Narrow"></font></strong> <p><strong><font size="4" face="Arial Narrow">Referenciando el conector de mysql</font></strong> <br /><p><font size="4" face="Arial Narrow">El paso a seguir, es agregar una referencia de mysql a nuestro proyecto, para lograrlo, hacemos clic derecho sobre la carpeta referencias de nuestro proyecto y seleccionamos Add reference:</font> <br /><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXZw0znbszJwvLHfn2k9HummT0CGRzA9SPvkMZo8JqB1EMhsbLCWo0PgV_pashpQjdk3Sd-zcucrkL0hWNdhJ7pjciOcNKljqT4OArhZ8In-e5FF_fmrSVIt5VdPsw2ZMUbH7FHFrSFa0/s1600-h/Untitled%25255B26%25255D.png"><font size="4" face="Arial Narrow"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZWlT7Uhtm9WLaU9RSMaNi9-Fl279Wl2e77ZOXqd6N2L72-p13yHcLjKGJ_haUCG63Ck5kqD7cYGHlL1afUk-hkyDe0DezpklWAj40-XY232NDXa-9v7etM9v31pqoieX6pJjsJUc-xgo/?imgmax=800" width="380" height="327"></font></a> <br /><p><font size="4" face="Arial Narrow">En la pestaña Browse, buscamos la ruta donde se instalo el driver de mysql (en mi caso C:\Program Files (x86)\MySQL\MySQL Installer) y seleccionamos la dll con el nombre <strong>MySql.Data.dll</strong>:</font> <br /><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinkwrASU2UQXZo3SCo4mMP-2oSeCzNfS_ispsrsCphLqLnKsROonpVp844b_f31PE8uIvpVmHPx0J2LGc2zWQ7zoyAPUn67oiYJ1E-e58mGOexr4uLonreIJhxKqYg96gKn0bxaukPNew/s1600-h/Untitled%25255B30%25255D.png"><font size="4" face="Arial Narrow"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgH7VbXV3cgvqYEWe-x4BItXUX-IydLXEF9CfHF6bvS-jw64-mi8PiMaUgRAEKaWUlygt27Lcr1HaMkaIwTgzVxWFQuHgjNCalkpgOW3-6n9QoHU-Q8A_VP14H-35QrJNPTDnuU3MFeWe4/?imgmax=800" width="417" height="367"></font></a> <br /><p><font size="4" face="Arial Narrow">Clic en el botón Ok.</font> <br /><p><font size="4" face="Arial Narrow">Verificamos que la referencia se haya realizado correctamente:</font> <br /><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi26LXJm1CSo1Z8AIPoIzt84IqZXYH5oNPPtiFzWG7g0-pTZSvb5tgkiUnypycQ4rIrvy8qJY-p5FUlLUD0U7JEwIfg1GY_1AWjABsP_Pk6V9B0ZsGaGE8ezenjBED004-s25l-21jIOqw/s1600-h/Untitled%25255B34%25255D.png"><font size="4" face="Arial Narrow"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJsoWA1bcGv8cpRcyTnYnmpXC_BW2nShyphenhyphenStQjJ4h_b3704t25jhR5Pl8T2UHVhKDV56ue8ZbL_kG54smNwmIsYmhG3-w2RRCI8Ka1s2MWla0OtRi6JeQvVKnW32U8_G2Q1AH_8t5DXYZo/?imgmax=800" width="361" height="333"></font></a> <br /><p><font size="4" face="Arial Narrow">Ah, no se nos puede olvidar referenciar nuestra dll desde código con:</font></p><br /><div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:d0ad4443-184f-491f-99d1-f3766764988d" class="wlWriterEditableSmartContent"><pre name="code" class="c#">using MySql.Data.MySqlClient;</pre></div><br /><p><font size="4" face="Arial Narrow">Con eso, ya podemos utilizar todas las clases para acceso a datos ofrecidas por mysql.</font> <br /><p><strong><font size="4" face="Arial Narrow"></font></strong> <p><strong><font size="4" face="Arial Narrow">Accediendo a la base de datos</font></strong> <br /><p><font size="4" face="Arial Narrow">En el <strong>Mein</strong> ingresamos el siguiente código:</font></p><br /><p><br /><div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:68e7f443-68ab-4532-ab3d-c4f212abe63e" class="wlWriterEditableSmartContent"><pre name="code" class="c#"> static void Main(string[] args)<br /> {<br /> var ConnectionString = @"server=localhost; user=root; password=a54321; database=Prueba";<br /> using (MySqlConnection con = new MySqlConnection(ConnectionString))<br /> {<br /> con.Open();<br /> using (MySqlCommand Command = new MySqlCommand("SELECT IdEmpleado, Nombres, Apellidos, Correo, Telefono FROM Empleados", con))<br /> using (MySqlDataReader Reader = Command.ExecuteReader())<br /> {<br /> while (Reader.Read())<br /> {<br /> Console.WriteLine("{0} - {1} - {2} - {3} - {4}",<br /> Reader.GetInt32(0), Reader.GetString(1), Reader.GetString(2), Reader.GetString(3), Reader.GetString(4));<br /> }<br /> }<br /> }<br /> Console.ReadKey();<br /> }</pre></div></p><br /><p><font size="4" face="Arial Narrow"></font> </p><br /><p><font size="4" face="Arial Narrow">Estamos llendo a base de datos y ejecutando la siguiente sentencia:</font> </p><br /><p> </p><br /><p><br /><div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:3331961a-1945-4d45-927b-7ee12e82623b" class="wlWriterEditableSmartContent"><pre name="code" class="sql">SELECT IdEmpleado, Nombres, Apellidos, Correo, Telefono<br />FROM Empleados</pre></div></p><br /><p><font size="4" face="Arial Narrow">Recuperamos lo que nos retornó la consulta y lo lo visualizamos en la consola:</font> <br /><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA0DiuzMZVp0zubou6csYjckD1QuncbuoYhHfM839h4a4roG8RRRIXspXfude55skAPYrjMcwXhL31aBFpR6cDDJuKH6S7oCLKx4qmYq_aARQTb3iWdLuDNlfo84OCzuaVXG8yl-m1ZIQ/s1600-h/Untitled%25255B38%25255D.png"><font size="4" face="Arial Narrow"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="http://lh3.ggpht.com/-49xeKYbJ80k/UIhRi43DiKI/AAAAAAAAAMg/rxyJi7Fz3HU/Untitled_thumb%25255B20%25255D.png?imgmax=800" width="493" height="271"></font></a> <br /><p><font size="4" face="Arial Narrow">De esa misma manera podemos ejecutar nuestras instrucciones INSERT, UPDATE, DELETED para realizar cualquier tipo de operación a la información !!!!</font> <br /><p><strong><font size="4" face="Arial Narrow"></font></strong> <p><strong><font size="4" face="Arial Narrow">Código</font></strong> <br /><p><font size="4" face="Arial Narrow">Desde el siguiente link, pueden descargarse el ejemplo realizado con Visual Studio 2010 y Mysql 5.5.</font> <br /><p><a href="https://skydrive.live.com/redir?resid=E86EA45CA85C749E!398" target="_blank"><font size="4" face="Arial Narrow">Descargar código !</font></a></p> Cristian Pérezhttp://www.blogger.com/profile/09224372228200066820noreply@blogger.com3tag:blogger.com,1999:blog-15437421610342637.post-54385257415735165992012-10-23T12:11:00.001-07:002012-10-23T12:30:48.623-07:00[ASP.NET] Mostrar progreso en página web<p><font size="4" face="Arial Narrow"></font> </p> <p><font size="4" face="Arial Narrow"><strong>Introducción</strong>:</font></p> <p><font size="4" face="Arial Narrow">Una tarea que no es indispensable para el desarrollo de un sitio web; pero que mejora bastante la experiencía del usuario final; es tener una pequeña parte de la página que que se presente con un Gif animado y un texto cómo “Procesando…” mientras se realiza cualquier tarea que tome algún intervalo significativo de tiempo.</font></p> <p><font size="4" face="Arial Narrow">El <strong>ASP.NET AJAX Control Toolkit</strong> nos ofrece un control llamado <strong>UpdateProgress</strong> que nos fácilita enormemente esta tarea.</font></p> <p><font size="4" face="Arial Narrow"></font> </p> <p><font size="4" face="Arial Narrow"><strong>Descargar el ASP.NET AJAX Control Toolkit</strong></font></p> <p><font size="4" face="Arial Narrow">Simplemente tenemos que ingresar a la página oficial:</font></p> <p><a href="http://ajaxcontroltoolkit.codeplex.com/" target="_blank"><font size="4" face="Arial Narrow">Ajax Control Toolkit</font></a></p> <p><font face="Arial Narrow"><font size="4">Y hacer clic en el botón morado de la parte superior derecha que dice <strong>Download.</strong></font></font></p> <p><font size="4" face="Arial Narrow">Descomprimimos la carpeta y con eso tenemos nuestro Ajax listo para ser utilizado.</font></p> <p><font size="4" face="Arial Narrow">(Posteriormente vamos a utilizar un archivo de este paquete)</font></p> <p><font size="4" face="Arial Narrow"></font> </p> <p><font size="4" face="Arial Narrow"><strong>Descargando el Gif que vamos a visualizar</strong></font></p> <p><font size="4" face="Arial Narrow">Seguramente hay muchas páginas que ofrecen gif de progreso para que visualicemos mientras la página hace un llamado al servidor, pero la que mas me gusta es esta:</font></p> <p><a href="http://www.ajaxload.info/" target="_blank"><font size="4" face="Arial Narrow">Ajaxload</font></a></p> <p><font size="4" face="Arial Narrow">Cómo ven, hay mucha variedad de imagenes y podemos definir el color de la imagen, del fondo, si la queremos con fondo transparente, etc:</font></p> <p><a href="http://lh4.ggpht.com/-F9azpsr3wjM/UIbrhttn-PI/AAAAAAAAAIM/HUFNFAO8uX4/s1600-h/Untitled%25255B23%25255D.png"><font size="4" face="Arial Narrow"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHujIHuN48uH6WW02wAxC-8X4HFSApF4KyL2Xh6Xr2jWEscLqWc8jXPCxAN_so4SkaARK0XiIGnmdyy8ylcvGFZ5ekfd0NOe-JLlnWH-8Hf_b8rCJF3BzKmxkzRHc45RBNFG0reusYLM0/?imgmax=800" width="415" height="388"></font></a></p> <p><font size="4" face="Arial Narrow">Simplemente descargamos la que mas nos guste y ya está.</font></p> <p><font size="4" face="Arial Narrow"></font> </p> <p><font size="4" face="Arial Narrow"><strong>Creando una página en blanco</strong></font></p> <p><font size="4" face="Arial Narrow">Abrimos nuestro visual studio, clic en File –> New –> Project</font></p> <p><font size="4" face="Arial Narrow">Visual C# –> Web –> ASP.NET Empty Web Application</font></p> <p><a href="http://lh5.ggpht.com/-_xm1YU_Lh6o/UIbrk5O_wSI/AAAAAAAAAIc/QzgWut0rRAU/s1600-h/Untitled%25255B3%25255D.png"><font size="4" face="Arial Narrow"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="http://lh5.ggpht.com/-ZFIhYOyjXwo/UIbrm_7jbBI/AAAAAAAAAIk/41t4Lt3GXnM/Untitled_thumb%25255B1%25255D.png?imgmax=800" width="533" height="388"></font></a></p> <p><font size="4" face="Arial Narrow">Agregamos un formulario en blanco (yo lo llamé default):</font></p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkgHyFVGdzxce4Wcfd8FthuDMmffz4hiUedDDzNyj9urnsLp-guRwOtrtT4KMpPPo0UkJIwNt0zmL-mCYcVZ8mK6Pb9VDMPl0sniqgr1tE-yMECqF4YPWrrNGXqUPJMB0rG1r6bM2U72E/s1600-h/Untitled%25255B7%25255D.png"><font size="4" face="Arial Narrow"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfzBviKdmM0HqSxNYsro79evZcjTOsqiPYoQeB6q_mzQwap9UU2cgRF2uc__qrvLaWCRKZf-ZeyGVOwB9ttYtH9gXMIAYDJzb3KbY1QIWjoW0FJnGzV6qIFwc6DcHXGlqLcTg92LYpSYo/?imgmax=800" width="506" height="368"></font></a></p> <p><font size="4" face="Arial Narrow"></font> </p> <p><font size="4" face="Arial Narrow"><strong>Agregando la imagen al proyecto</strong></font></p> <p><font size="4" face="Arial Narrow">Simplemente creamos una carpeta llamada Imagenes y le agregamos el Gif que previamente descargamos.</font></p> <p><a href="http://lh3.ggpht.com/-c1lh7w7zZVU/UIbrqTCXaZI/AAAAAAAAAI8/kmaRJFq8oBU/s1600-h/Untitled%25255B27%25255D.png"><font size="4" face="Arial Narrow"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_KSZJ1YF8K13aWfEbpOjeYPmFd55Ib_lqff-_TnN1_cNYKn7_PNkIQXyUcHNcTTKUwvktuJcAMgG0bdPDiGja4VjCcPf7WJUjCx1rNyegzfh392c1HUlXEy4QJ-WuaGBND4xDwNEtGqc/?imgmax=800" width="350" height="236"></font></a></p> <blockquote> <p><font size="4" face="Arial Narrow"></font> </p></blockquote> <p><font size="4" face="Arial Narrow"><strong>Agregando la referencia de Ajax</strong></font></p> <p><font size="4" face="Arial Narrow">El paso a seguir, es agregar una referencia de Ajax Control Toolkit a nuestro proyecto, para lograrlo, hacemos clic derecho sobre la carpeta referencias de nuestro proyecto y seleccionamos Add reference:</font></p> <p><a href="http://lh5.ggpht.com/-62IWGs8X7gY/UIbruwUDmoI/AAAAAAAAAJM/EIRHV0X33JI/s1600-h/Untitled%25255B11%25255D.png"><font size="4" face="Arial Narrow"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqUsKVn6ac_RFDyUoduRLqqdVFINNYoTUf9RZNt8UnQDd9TEzDgvwY7U5iLLyhtNN97k8NgSQAsSTL9G77da1-Xb7Bkn-UWv8Ns9_2q-kcBI3IKMHp0xV6p8vZPF1mRTLROsOHZO6SNlo/?imgmax=800" width="264" height="364"></font></a></p> <p><font size="4" face="Arial Narrow">En la pestaña Browse, buscamos el Ajax Control Toolkit descomprimido y seleccionamos la dll con el nombre AjaxControlToolkit.dll :</font></p> <p><a href="http://lh6.ggpht.com/-zaQXrzJ43vs/UIbrw7PIP2I/AAAAAAAAAJc/vQ50b-m3CW0/s1600-h/Untitled%25255B15%25255D.png"><font size="4" face="Arial Narrow"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="http://lh6.ggpht.com/-dHoGjDlHSGg/UIbrxwAEGVI/AAAAAAAAAJk/sNF_Aoct7do/Untitled_thumb%25255B7%25255D.png?imgmax=800" width="445" height="392"></font></a></p> <p><font size="4" face="Arial Narrow">Clic en el botón Ok.</font></p> <p><font size="4" face="Arial Narrow">Verificamos que la referencia se haya realizado correctamente:</font></p> <p><a href="http://lh5.ggpht.com/-vpT0UgQrV9A/UIbry0ZvEYI/AAAAAAAAAJs/yYhmrhEzi8Q/s1600-h/Untitled%25255B19%25255D.png"><font size="4" face="Arial Narrow"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjy4HRsE2S7gVyWEDD4ptAwlRxxSso7ep7TGO8-XDeEAe6ubP9wKWtHW9TypYsLVH4582KI68WIUPAVrizlG74VBvaYCPZPHFVf0DkIO2gzO46luq9ALlfmigdPFCJpNLii1nTmhRvxKKA/?imgmax=800" width="326" height="422"></font></a></p> <p><font size="4" face="Arial Narrow">Con eso, ya podemos utilizar todos los controles que ofrece Ajax.</font></p> <p><font size="4" face="Arial Narrow"></font> </p> <p><font size="4" face="Arial Narrow"><strong>Creando el control</strong></font></p> <p><font size="4" face="Arial Narrow">Abrimos nuestra página default en modo de diseño y agregamos la referencia con esta linea:</font></p> <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:85e167bf-40a2-4014-87dc-867cbee1b2f2" class="wlWriterEditableSmartContent"><pre name="code" class="xml"><%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="asp" %></pre></div><br /><p><font size="4" face="Arial Narrow">Esa <strong>tiene</strong> que ser la <strong>segunda</strong> linea de nuestro código HTML.</font></p><br /><p><font size="4" face="Arial Narrow"></font> </p><br /><p><font size="4" face="Arial Narrow"><strong>Agregando el control</strong></font></p><br /><p><font size="4" face="Arial Narrow">El código del control es muy sencillo, y para que el progreso se active, vamos a crear un botón justo antes del UpdateProgress:</font></p><br /><div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:8b8efbd0-c401-4683-a62b-6be571d41d2d" class="wlWriterEditableSmartContent"><pre name="code" class="xml"> <asp:ScriptManager ID="ScriptManager1" runat="server"><br /> </asp:ScriptManager><br /> <asp:UpdatePanel ID="UpdatePanel1" runat="server"><br /> <ContentTemplate><br /> <asp:Button ID="Button1" runat="server" Text="Button" /><br /> <br /><br /> <asp:UpdateProgress ID="UpdateProgress2" runat="server"><br /> <ProgressTemplate><br /> Procesando...<br><br /> <asp:Image ID="Image2" ImageUrl="~/Imagenes/ajax-loader.gif" runat="server" /><br /> </ProgressTemplate><br /> </asp:UpdateProgress><br /> </ContentTemplate><br /> </asp:UpdatePanel></pre></div><br /><p><font size="4" face="Arial Narrow">Ah, se me había olvidado de dos pequeños amigos que necesitamos para que nuestro ejemplo funcione correctamente:</font></p><br /><p><font size="4" face="Arial Narrow">Uno es el <strong>ScriptManager</strong>, este control es necesario cómo prerequisito al momento de utilizar el Ajax Control Toolkit</font></p><br /><p><font size="4" face="Arial Narrow">El otro es el <strong>UpdatePanel</strong>, que cambia los postback totales por parciales entre muchas otras cosas que hace ….</font></p><br /><p><font size="4" face="Arial Narrow">Eso va dentro de la etiqueta <strong>form</strong>; observen que hacemos referencia a la imagen que nos descargamos y que agregamos a la carpeta Imagenes del proyecto.</font></p><br /><p><font size="4" face="Arial Narrow"></font> </p><br /><p><font size="4" face="Arial Narrow"><strong>Probando el funcionamiento del control</strong></font></p><br /><p><font size="4" face="Arial Narrow">A nivel de code begin, sólo debemos de agregarle el evento clic al botón que creamos y en este realizar una pausa de 3 segundos suficientes para que se visualice el progreso (en sus proyectos remplazarían esos tres segundos por el proceso que tarda algo de tiempo y que quieren mejorar la experiencia del usuario):</font></p><br /><p><br /><div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:2b3e3287-0053-41d4-a677-479c6bfb3759" class="wlWriterEditableSmartContent"><pre name="code" class="c#"> protected void Page_Load(object sender, EventArgs e)<br /> {<br /> Button1.Click += new EventHandler(Button1_Click);<br /> }<br /> protected void Button1_Click(object sender, EventArgs e)<br /> {<br /> Thread.Sleep(3000);<br /> }</pre></div></p><br /><p><font size="4" face="Arial Narrow">Ah, para que les funcione la pausa, deben de referenciar el espacio de noombres <strong>System.Threading</strong>:</font></p><br /><p><br /><div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:48f4fc25-2cf0-42b1-b032-84e636622344" class="wlWriterEditableSmartContent"><pre name="code" class="c#">using System.Threading;</pre></div></p><br /><p><font size="4" face="Arial Narrow"></font></p><br /><p><font size="4" face="Arial Narrow">Una vez hayamos cumplido con todos los pasos anteriores, podemos pulsar F5, hacer clic en el botón y visualizaremos por tres segundo una parte de la página con el Gif y la palabra Procesando:</font></p><br /><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpROWryq-YSOcXNkVwxs7_Ou8du6IATC9rMVFcNmv-JytMtVPttkfywLPkvbZOtq0KLJt58IRgggdXenovFG9F5DGlIL_bQaa3oLnuvLuk-zPbnfeqjsEnyBaTQqTnWtzaZZFPZiUsQ0M/s1600-h/Untitled%25255B31%25255D.png"><font size="4" face="Arial Narrow"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuSgrHmy5P3sorQza2LQrsCXGsRnwGfkBXgkm6jlh2DfGX4B_ghOo74z2eKwg6tmlXKYKP2BjMfgspMVo0XBf_AE-uJ-hYf77QqUI_3gfC1ksu11SINio6wrVDD4hcNkZlMps51S2mcso/?imgmax=800" width="349" height="148"></font></a></p><br /><p><font size="4" face="Arial Narrow">Código</font></p><br /><p><font size="4" face="Arial Narrow">Desde el siguiente link, pueden descargarse el ejemplo realizado con Visual Studio 2010</font></p><br /><p><font size="4" face="Arial Narrow"><a href="https://skydrive.live.com/redir?resid=E86EA45CA85C749E!397" target="_blank">Descargar código</a></font></p><br /><p><font size="4" face="Arial Narrow"></font> </p><br /><p><font size="4" face="Arial Narrow"></font></p> Cristian Pérezhttp://www.blogger.com/profile/09224372228200066820noreply@blogger.com3tag:blogger.com,1999:blog-15437421610342637.post-7052647496930774012012-10-10T07:30:00.000-07:002012-10-23T09:21:11.673-07:00[C#] Realizar una conexión con SQL server<p> </p> <p><font size="4" face="Arial Narrow"><strong>Introducción</strong></font></p> <p><br><font size="4" face="Arial Narrow">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.</font></p><font size="4" face="Arial Narrow"></font><font size="4" face="Arial Narrow"> <p><br><strong>Que es una conexión a base de datos y para que se utiliza ?</strong></p> <p><br>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.</p> <p><br>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 !</p> <p><strong>Creamos la base de datos</strong></p> <ul> <li>Ingresamos al SQL management studio y ejecutamos esta sentencia para crear una base de datos de prueba:</li></ul> <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:cff40f14-0c1f-49f8-a578-35d3696bc34f" class="wlWriterEditableSmartContent"><pre name="code" class="sql">CREATE DATABASE Prueba</pre></div><br /><br /><p> </p></font><br /><p><strong><font size="4" face="Arial Narrow">Creamos el usuario</font></strong></p><br /><ul><br /><li><font size="4" face="Arial Narrow">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:</font></li></ul><br /><blockquote><br /><p><font size="4" face="Arial Narrow">Security – Logins</font></p></blockquote><br /><blockquote><br /><p><font size="4" face="Arial Narrow">Clic derecho sobre Logins y seleccionamos <strong>New Login…</strong>:</font></p><br /><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7zwVezq18yIA4smvk0PvN5wmLXSm8uUTg1oy58lMTznV3Pzsu86oJt8RcBbp7FENwffSchCVVnt_7FMuEW2QkP-gFuK-nfi-AefhyphenhyphenINbxhTE9ohT6Tb_tNhSxl-zG4n2vuYpKcQqo0sY/s1600-h/Untitled%25255B5%25255D%25255B3%25255D.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Untitled[5]" border="0" alt="Untitled[5]" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJ6FfqHyHc6QQqBJZ9ylGCFFbEdAv-yhlNdkNqXiUFjFS_HmPmCrFPKi-jfoqfR3f7edhDmu0sR9CZKJqXtRUCkzoWSfnaFdVoiZivz5R8oezDLYQn4_5Zx3KhMy6hc0pAMc-oCEoUk0A/?imgmax=800" width="394" height="471"></a></p><br /><ul><br /><li><font size="4" face="Arial Narrow">No abre la siguiente pantalla donde en la pestaña <strong>General</strong> podemos seleccionar el tipo de autenticación (Integrada con windows o de SQL server), politicas de seguridad de contraseña:</font></li></ul><br /><p><a href="http://lh6.ggpht.com/-H1pWxLb5Y4w/UIaaeRcOqeI/AAAAAAAAAGc/AtuYuBFEPHc/s1600-h/Untitled63.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisZiGDMSjjkvF1UI0GuK1UhvRE6lYHgzMl83KUXIb1k41gKc5uUVtxZg-qnGeXJF0kT_tt08IdVFyyzbpo2b7BOpw1guUmfS_KqCK6pYZ_9Uq3XA8lQctGjQe7thDm2qqBRMjxZPISadw/?imgmax=800" width="412" height="558"></a></p><br /><p> </p><br /><ul><br /><li><font size="4" face="Arial Narrow">Luego nos vamos a la pestaña <strong>User Mapping</strong>, aquí podremos seleccionar la base de datos a la que lo deseamos asociar y uno de varios roles que vienen por defecto:</font></li></ul><br /><p><a href="http://lh4.ggpht.com/-s_G25UNKyW0/UHWcBzZn-TI/AAAAAAAAAGo/3ylqyxulpc8/s1600-h/Untitled93.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="http://lh5.ggpht.com/-PcMl6yP0GSU/UHWcCo9hjGI/AAAAAAAAAGs/ZunKSebh6KE/Untitled9_thumb2.png?imgmax=800" width="432" height="573"></a></p></blockquote><br /><ul><br /><li><font size="4" face="Arial Narrow">Observen que seleccione la base de datos <strong>Prueba</strong> (que creamos previamente ) y el rol <strong>db_owner</strong>, este rol es como el administrador (permite ejecutar cualquier tipo de sentencia), dependiendo de la necesidad, seleccionariamos el tipo de rol; por ejemplo: <strong>db_datareader</strong> (definimos permisos de lectura) y sobre <strong>db_datawriter</strong> (definimos permisos de escritura).</font> <br /><li><font size="4" face="Arial Narrow">Damos clic en el botón <strong>Ok </strong>y tendremos nuestro usuario creado.</font></li></ul><br /><p><strong><font size="4" face="Arial Narrow">Probamos el usuario</font></strong></p><br /><p><font size="4" face="Arial Narrow">Una vez creado, no esta de más probar que funcione correctamente un inicio de sesión</font></p><br /><p><font face="Arial Narrow"><font size="4">Hacemos clic en <strong>Connect</strong> Y seleccionamos <strong>Database Engine …</strong></font></font></p><br /><p><a href="http://lh6.ggpht.com/-5uTPMZA8Zf4/UHWcDYt7pVI/AAAAAAAAACE/zd26nhxV6-0/s1600-h/Untitled%25255B14%25255D.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrQnWiHCpK4b2XDe0J0F0xOIZloBrwDr6usQnvtLDPHGVupAH7CvlTYF4m1zPs6-a6DhyGdAqxCdXAIqLIzN_76r9VENipcqtSEYCKhKqWjq7ei9Ez0WaBt1HCiSPFRn8efmGgQXKxuzw/?imgmax=800" width="209" height="232"></a></p><br /><p><font size="4" face="Arial Narrow">En la pantalla que nos aparece, seleccionamos, nombre de servidor, tipo de autenticación, y siendo el caso el usuario y la contraseña.</font></p><br /><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgh7h6uep81icJMckR4ClYflWqY1WE_xSyjTqhl9rX2KLfYOgfNdfeGeHdmSOmMc5jmFQKGwKDESMWM2od5HbC1CpLWqjPh6-GfvdS1S6PBBq4ahXEZAxAJ5FAKzGmLD-lRwB1nvhVDIpA/s1600-h/Untitled151.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="http://lh3.ggpht.com/-bNLjCse35sg/UHWcHlanBeI/AAAAAAAAAG0/HqqrqY1tQ6M/Untitled15_thumb.png?imgmax=800" width="370" height="292"></a></p><br /><p><font size="4" face="Arial Narrow">Clic en el botón <strong>Connect, </strong>expandimos el nodo de la base de datos Prueba, y ejecutamos alguna sentencia cómo manera de ensayo:</font></p><br /><br /><div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:e739b1f2-04f9-4331-bb07-d99722776b76" class="wlWriterEditableSmartContent"><pre name="code" class="sql">SELECT GETDATE()</pre></div><br /><br /><p><font size="4" face="Arial Narrow">Como ven, este usuario ya puede ingresar a la base de datos y ejecutar sentencias de algún tipo <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-openmouthedsmile" alt="Open-mouthed smile" src="http://lh3.ggpht.com/-UxjNrS_uNDk/UHWcIZvs0eI/AAAAAAAAACk/Iqgy3C9Z1JA/wlEmoticon-openmouthedsmile%25255B2%25255D.png?imgmax=800"></font></p><br /><p><font size="4" face="Arial Narrow"></font> </p><br /><p><font size="4" face="Arial Narrow"><strong>Crear la tabla</strong></font></p><br /><p><font size="4" face="Arial Narrow">Para hacer el ejemplo mas completo, vamos a crear una tabla de prueba llamada <strong>Empleados </strong>y le adicionamos algunos registros:</font></p><br /><br /><div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:4c1a9bfa-a155-40ae-835b-e18e22755632" class="wlWriterEditableSmartContent"><pre name="code" class="sql">CREATE TABLE Empleados (IdEmpleado INT IDENTITY(1,1), Nombres VARCHAR(50), Apellidos VARCHAR(50), Correo VARCHAR(50), Telefono VARCHAR(50))<br /><br />INSERT INTO Empleados (Nombres, Apellidos, Correo, Telefono) VALUES ('Aquiles', 'Brinco', 'aquilesbrinco@outlook.com', '4010068')<br />INSERT INTO Empleados (Nombres, Apellidos, Correo, Telefono) VALUES ('Armando', 'Casas', 'armandocasas@outlook.com', '64681684')<br />INSERT INTO Empleados (Nombres, Apellidos, Correo, Telefono) VALUES ('Débora', 'Melo', 'deboramelo@outlook.com', '651674')<br />INSERT INTO Empleados (Nombres, Apellidos, Correo, Telefono) VALUES ('Elsa', 'Pato', 'elsapato@outlook.com', '698541488')<br />INSERT INTO Empleados (Nombres, Apellidos, Correo, Telefono) VALUES ('Susana', 'Oria', 'susanaoria@outlook.com', '546654651654')<br />INSERT INTO Empleados (Nombres, Apellidos, Correo, Telefono) VALUES ('Aquiles', 'Bailo', 'aquilesbailo@outlook.com', '5465465465')<br />INSERT INTO Empleados (Nombres, Apellidos, Correo, Telefono) VALUES ('Elvio', 'Lao', 'elviolao@outlook.com', '301864546')<br />INSERT INTO Empleados (Nombres, Apellidos, Correo, Telefono) VALUES ('Elva', 'Gina', 'elvagina@outlook.com', '654687486')<br />INSERT INTO Empleados (Nombres, Apellidos, Correo, Telefono) VALUES ('Elmer', 'Curio', 'elmercurio@outlook.com', '3017768305')</pre></div><br /><br /><p><font size="4" face="Arial Narrow">Para visualizar nuestra información, basta con hacer un <strong>select</strong> a la tabla desde el Management Studio:</font></p><br /><br /><div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:d132601f-ec3b-4680-834a-017d675239ec" class="wlWriterEditableSmartContent"><pre name="code" class="sql">SELECT IdEmpleado, Nombres, Apellidos, Correo, Telefono<br />FROM Empleados</pre></div><br /><br /><p> </p><br /><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixrJVx0jeGk3iF4gsEMPcAsgt8ADtSqORu8Lh3hry_rmWGhdVIG-f9qRLVNT9K1Sh4NKb_lyYaMgK05PvE4OULN2jpsMyBlzIDNfpYe1b9_3UJA49eMQ7OjQ5kNrYEoAtA5I-aNSonzBY/s1600-h/Untitled%25255B4%25255D.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUbbvcv9tmbT-aucB5sYZX8R3z9FBEmbv0tYGKJa-PwaogINh3anU5ddqEjkVWqLLjeWvpQ-eKFGJLXghLWcX88J_42LKuE3Fb8Cfhp7S_GtnBd0YPa-pz_FqFMrxmG797Ew3v8OELn4Y/?imgmax=800" width="533" height="320"></a></p><br /><p> <font size="4" face="Arial Narrow">Con esto ya tenemos listo lo que debemos hacer a nivel del motor de base de datos.</font></p><br /><p><font size="4" face="Arial Narrow"></font> </p><br /><p><strong><font size="4" face="Arial Narrow">Crear string de conexión</font></strong></p><br /><p><font size="4" face="Arial Narrow">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 ….</font></p><br /><p><font size="4" face="Arial Narrow">La solución, es crear un archivo <strong>.udl</strong>, este nos proveé una pantalla (parecida a la de SQL server) en la que vamos a poder crear nuestro string de conexión.</font></p><br /><p><font size="4" face="Arial Narrow">Entonces creamos un nuevo archivo de texto:</font></p><br /><p><a href="http://lh6.ggpht.com/-IpKZLEfeqrs/UHWcJDsQXzI/AAAAAAAAAG4/sf2pTuXBnBU/s1600-h/Untitled212.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg77uMHDEKjGBHB7aXyHbUzZiws-vNQo-8cXwRMhTMkYjzaPGQ8nH3ZVOlhJLeAeFwZLur6X4hyNwhMKEGAGAKjkuIDXmH3RJD7QvZzQCHO8iCMoNxq1ICGgAD9BL7chaiJVaQ5r7eXMXQ/?imgmax=800" width="385" height="409"></a></p><br /><p><font face="Arial Narrow"><font size="4">Le cambiamos la extensión de <strong>.txt</strong> a <strong>.udl</strong>, el nombre no importa, yo lo llamé <strong>Conexion.</strong></font></font></p><br /><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7AnT8g6tvQkSyNLboNo4DttZMLz_sPGoCRpvXUMUyZ2D69NYr0X5N_VvkYXNnwTYZBG_Qr0gF95liXxQfhzeq3a__7aoMZ1dnFSLEDbL4nHPO6xbLbPZuoghAKIPi-Zyj9ak_uOzq8ow/s1600-h/Untitled24%25255B1%25255D.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2pMlNdkz_pxcyMMw1TqInAuTamHXVOYri7GiJDetMaScLqM3FkfoYeOaHanPDZ-q9avCHTzrt123lCT_gv6S-PVmHill182oaBhPy-B5qHzGe0DqbyFNzzLLF2rcSnADrOUdO0ne8ZGo/?imgmax=800" width="285" height="82"></a></p><br /><p><font size="4" face="Arial Narrow">Abrimos el archivo y nos vamos a la pantalla <strong>Provider</strong>:</font></p><br /><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9PMzcFIBnAZNn8Jktr6W8OoGH-aluef_DvzhyphenhyphenF547WgnHgfwEwUcK3ZUd1GEvtyibLyj1n1FrDaMGLuKhJHe9EjF4qvSMHjxiUsobZhWWi0ySBYt4k3v7ElY5dqQeCKQyWJWtUuu_RtY/s1600-h/Untitled27%25255B2%25255D.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="http://lh6.ggpht.com/-v_6_xxr41B0/UHWcMl8q0_I/AAAAAAAAAF4/4CnADopu4Mk/Untitled27_thumb%25255B1%25255D.png?imgmax=800" width="334" height="442"></a></p><br /><p> </p><br /><p><font size="4" face="Arial Narrow">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.</font></p><br /><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih8ZJW5eJ5R9UKsRe5S_A0k2yHv6H9d8QIR9Qkiz-02XmV72RY4O99K4Kpefc7NSgT-K30H5JNVfb2RVYRXlKAgFH3pvI6cg96bcKiju6AiOin0hkm7RDNS-xio_9h3snz5BUt-DKkLTc/s1600-h/Untitled30%25255B2%25255D.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="http://lh3.ggpht.com/-ddPADHGMDcI/UHWcOc3oF-I/AAAAAAAAAGA/zNIzyxcD19E/Untitled30_thumb%25255B1%25255D.png?imgmax=800" width="352" height="465"></a></p><br /><p><font size="4" face="Arial Narrow">Muy importante seleccionar la lista de chequeo <strong>Allow saving password </strong>(eso nos permitirá que la clave quede almacenada en el string de conexión) y seleccionar la base de datos.</font></p><br /><p><font size="4" face="Arial Narrow">Hacemos clic en el botón <strong>Test Connection</strong> y si todo lo hicimos bien, nos saldrá un mensaje como este:</font></p><br /><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9cTBElJKhEcdO6mUodtVubCDFZGiEztgX8iEZLAA2D3mEx3-b3xCL3Ri5xY12rkFuEZn_5bjAHhesE3vwPj8IpWfHigJRJitReCrF1IN4LCkAl_RNkgul4lFukt8ojPYZ_VzlOVYPVN8/s1600-h/Untitled%25255B38%25255D.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="http://lh6.ggpht.com/-Ocl__gcxXF0/UHWcQKeIX7I/AAAAAAAAAD0/gey4V-_6gOM/Untitled_thumb%25255B12%25255D.png?imgmax=800" width="244" height="158"></a></p><br /><p><font size="4" face="Arial Narrow">Luego hacemos clic en el botón <strong>Ok</strong>.</font></p><br /><p><font size="4" face="Arial Narrow">Conformamos el siguiente dialogo:</font></p><br /><p><a href="http://lh6.ggpht.com/-IxLmPsPy254/UHWcQrCm6yI/AAAAAAAAAHA/j7RY740A7_k/s1600-h/Untitled392.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="http://lh4.ggpht.com/-hYTl2YqR_OQ/UHWcRm2cynI/AAAAAAAAAHE/WjtKbwBITeY/Untitled39_thumb1.png?imgmax=800" width="414" height="210"></a></p><br /><p><font size="4" face="Arial Narrow">Basicamente nos avisa que la contraseña se va a guardar en el archivo.</font></p><br /><p><font size="4" face="Arial Narrow">Luego, hacemos clic derecho sobre el <strong>.udl</strong> y lo abrimos con un editor de texto:</font></p><br /><p><font size="4" face="Arial Narrow">Como verán, este es el contenido del archivo:</font></p><br /><p><font face="Arial Narrow"><font size="4">[oledb]<br>; Everything after this line is an OLE DB initstring<br>Provider=SQLOLEDB.1;<strong>Password=a54321;Persist Security Info=True;User ID=Administrador;Initial Catalog=Prueba;Data Source=C-CPEREZ\SQL2008R2</strong></font></font></p><br /><p><font size="4" face="Arial Narrow">Y el string de conexión es el que esta en <strong>negrita</strong>.</font></p><br /><p><strong><font size="4" face="Arial Narrow">Realizar la conexión desde el lenguaje de programación (C#)</font></strong></p><br /><p><font size="4" face="Arial Narrow">Una vez hayamos cumplido los pasos anteriores, nos disponemos a crear un proyecto de tipo Consola en Visual Studio.</font></p><br /><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj69qYwv6cIOOyHM-d4N4b2UA4PIdf-fWRwEU0VzMPAK0RidYfjm71K3EZdVzRNcsM7jm6x3g6pRMORazAHvYMsNfQ2KR90HHZSJfU9PGaz6u8JmiphaNPrwsLKDk3-4HvYoQAPjEYCKy8/s1600-h/Untitled182.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFK5S6hoyAQLRNoyXHJoWWhnodBv8q-t1_1qt6V8xtA4kuHDU41Bhs_DzINTmFR5ricZ8CSKoA3jlinmcWLUQvAUOeEtXWnabMAdyfpcnnjx9cP2ojbUD-Xj8GMyJ54M_6if3sRhYhSsk/?imgmax=800" width="529" height="394"></a></p><br /><p><font size="4" face="Arial Narrow">En el <strong>Mein</strong> ingresamos el siguiente código:</font></p><br /><div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:ee9d0929-ffd4-432e-b12a-6db0715dbfd2" class="wlWriterEditableSmartContent"><pre name="code" class="c#"> static void Main(string[] args)<br /> {<br /> var ConnectionString = @"Password=a54321;Persist Security Info=True;User ID=Administrador;Initial Catalog=Prueba;Data Source=C-CPEREZ\SQL2008R2";<br /> using (SqlConnection con = new SqlConnection(ConnectionString))<br /> {<br /> con.Open();<br /> using (SqlCommand Command = new SqlCommand("SELECT IdEmpleado, Nombres, Apellidos, Correo, Telefono FROM Empleados", con))<br /> using (SqlDataReader Reader = Command.ExecuteReader())<br /> {<br /> while (Reader.Read())<br /> {<br /> Console.WriteLine("{0} - {1} - {2} - {3} - {4}",<br /> Reader.GetInt32(0), Reader.GetString(1), Reader.GetString(2), Reader.GetString(3), Reader.GetString(4));<br /> }<br /> }<br /> }<br /> Console.ReadKey();<br /> }</pre></div><br /><p><font face="Arial Narrow"><font size="4">Observen que la variable <strong>ConnectionString</strong> tiene lo que nos genero el <strong>.udl</strong></font></font></p><br /><p><font size="4" face="Arial Narrow">Estamos llendo a base de datos y ejecutando la siguiente sentencia:</font></p><br /><div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:40df5635-d3c9-4ecc-83d6-1c9533007610" class="wlWriterEditableSmartContent"><pre name="code" class="sql">SELECT IdEmpleado, Nombres, Apellidos, Correo, Telefono<br />FROM Empleados</pre></div><br /><p><font size="4" face="Arial Narrow">Recuperamos lo que nos retornó la consulta y lo lo visualizamos en la consola:</font></p><br /><p><a href="http://lh4.ggpht.com/-C6AcxO_isXE/UIarFUesXoI/AAAAAAAAAHw/0PoxCN9OqLQ/s1600-h/Untitled%25255B8%25255D.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLlnD2kSkp6IYhytM1iHytxLbQ3X4hTxvmsbRzPu9S7kChA-ZKdOWaiCeFKxCyJnamracMPLTNo0FWgssFOVZAsJaTP30WmEN59LTsBDFpB-8RYku-F74BDGTIhTcljAFUIox-UAsMehI/?imgmax=800" width="533" height="288"></a></p><br /><p><font size="4" face="Arial Narrow">De esa misma manera podemos ejecutar nuestras instrucciones INSERT, UPDATE, DELETED para realizar cualquier tipo de operación a la información !!!!</font></p><br /><p><font size="4" face="Arial Narrow"></font> </p><br /><p><font size="4" face="Arial Narrow"><strong>Código</strong></font></p><br /><p><font size="4" face="Arial Narrow">Desde el siguiente link, pueden descargarse el ejemplo realizado con Visual Studio 2010 y SQL server 2008 R2.</font></p><br /><p><a href="https://skydrive.live.com/redir?resid=E86EA45CA85C749E!395" target="_blank"><font size="4" face="Arial Narrow">Descargar Código</font></a></p> Cristian Pérezhttp://www.blogger.com/profile/09224372228200066820noreply@blogger.com3