Inicio > SQL Serveer 2008, SQL Server, SQL Server 2005, Visual Studio, Visual Studio 2008, WPF > [WPF] Conectándome a una Base de Datos SQL

[WPF] Conectándome a una Base de Datos SQL

Un pequeño ejemplo de como hacer esto en una aplicación en WPF, esto debido a una pregunta dentro de este Blog. Lo primero que pensé cuando me preguntaron como hacer esto  fue: “Es lo mismo que en Aplicaciones para Windows”. Y aquí un ejemplo sencillo.

Primero nos vamos a SQL Management Studio nos conectamos a nuestro motor de base de datos y creamos una Base sencilla, con una tabla y agregamos valores, esto con la siguientes instrucciones:

--Creamos la base de datos
CREATE DATABASE BdWPFEjemplo
GO

--Indicamos que vamos a trabajar sobre esta nueva bd
USE BdWPFEjemplo
GO

-- Creamos una tabla
CREATE TABLE Alumnos (nombre NVARCHAR(50), apellido NVARCHAR(50), edad INT)
GO

--Asignamos algunos valores a nuestra tabla
INSERT INTO Alumnos VALUES ('Norberto','Rojas',23)

Ya que tenemos nuestra BD, lo que sigue es crear nuestro proyecto de WPF. Una vez aquí lo que vamos a hacer es escribir la siguientes líneas en nuestro archivo app.config

<appSettings>
    <add key="cnx" value="Data Source=.\SQLNOR;
         Initial Catalog=BdWPFEjemplo;
         Persist Security Info=True;
         User ID=*****; 
         Password=*****" />
  </appSettings>

Ahora solo falta ver que es lo que queremos hacer, si solo una consulta, un actualización una inserción o ejecutar algún Procedimiento almacenado que realice una combinación de las acciones antes mencionadas. Para el nuestro caso como es un ejemplo sencillo solo ejecutaremos un SELECT común para mostrar el nombre de los alumnos (en este caso solo el mío) primero agregamos el código para nuestra conexión que es este:

private SqlConnection myConexion()
{
  return new SqlConnection(ConfigurationSettings.AppSettings["cnx"]);
}

Ya con esto solo ejecutaremos nuestra instrucción SELECT con un command y listo. El código es el siguiente:

private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            try
            {
                SqlConnection conn = myConexion();
                SqlCommand comm = new SqlCommand("SELECT nombre FROM Alumnos", conn);

                conn.Open();
                txtNombreAlumno.Text =  comm.ExecuteScalar().ToString();
                comm.Dispose();
                conn.Close();

            }            
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            
        }

Y si generamos y ejecutamos este es el resultado:

image

Y como pueden ver, el hecho de conectarte a una base de datos, ya sea desde una aplicación de WPF, una aplicación para Windows, un Web Services o alguna aplicación de ASP.NET el proceso es el mismo, y debe de funcionar igual para todo. Espero que este sencillo post les sea útil. Amito Arturo aquí el ejemplo que me pedias, espero que te ayude y cualquier cosa no dudes en comentarlo o pedir ayuda en el Blog.

Slaudos!

  1. abel
    mayo 11, 2009 a las 9:32 pm

    hhheeeeeeeeeee gracias de verda
    la verda es que solucionaste mi problema sigue asi🙂

    Ahora tengo otra duda claro si se puede ?????????
    bueno de tosos modos te lo digo🙂
    como conecto una base de datos sql en microsoft expression blend
    disculpa por el atrevimiento y te agradesco de antemano tu tiempo gracias

    • mayo 11, 2009 a las 11:21 pm

      Ahh mira amigo, pues es lo mismo, porque recuerda que el proyecto que creas en Expression Blend lo puedes abrir en Visual Studio. Expression Blend solo te sirve para el diseño y la logica de negocios la haces desde VS😀.

      Igual y dame unos dias y hago una demo, para que me entiendas.

      Saludos!!

    • noviembre 19, 2009 a las 3:50 pm

      Que tal,

      Recuerda que Expression Blend solo es la herramienta para crear el layout de nuestras aplicaciones, es decir; solo nos sirve para la inerfaz grafica. El proyecto que creaste en VS lo puedes abrir en Expresison Blend sin problemas.

      Saludos.

  2. junio 28, 2009 a las 12:20 am

    bueno hola amigo saves tnego una duda ya se qeu WPF solo es diseño peor quiero saber en que parte inserto el codigo BV o C# quisera una imagenapr ver oddn entro por uqe ni idea ya tengo mi inteface de wpf en VS peor ahora quiero insertar codigo y mi DB poer no se por donde comenzar pueds ayudar ? gracias su pues ante mano ..

    • junio 29, 2009 a las 2:00 am

      que tal desshi,

      creo que no entendi bien tu duda, pero vale trato de contestar.

      1.- si lo que quieres es integrar una imagen desde basde de datos, lo puedes hacer de 2 maneras diferentes con un campor en una tabla que se llama por ejmplo imagen de tipo bit que es como se guardan lasimagenes, o lo más recomendable que es que el campo sea de tipo nvarchar para guardar la ruta fisica de la imagen.

      2.- si lo que quieres hacer es que en WPF ingreses una imagen, utiliza el control imagen y con la propiedad src asiganas la ruta de la imagen y listo.

      Espero que te sirva.

      Saludos!!

  3. sebenscen
    noviembre 18, 2009 a las 5:25 pm

    Amigo disculpame, soy nuevo en esto,
    pero cuando creo mi proyecto wpf no encuentro por ningun lado el archivo app.config donde debo poner la cadena de conexion?, como realizo esto?, gracias mil loco!!

    • noviembre 19, 2009 a las 3:52 pm

      Que tal sebenscen,

      cierto, no lo agrega por defaul Visual Studio a tu proyecto, pero para agregarlo lo haces dando clic derecho en el explorador de soluciones al proyecto, agregar nuevo elemento y ahi viene la opción de agregar el app.config y ya lo puedes usar.

      Saludos.

  4. julio 8, 2010 a las 4:41 am

    Buenas!

    Me parece interesante tu aporte, weno al menos a lo que he tratado de averiguar , es el que mas se asemeja a mi inconveniente (al nuestro, mejor dicho, ya q somos un grupo x))

    Lo que pasa esq, estamos desarrollando unos sistemas, y últimamente me he enterado de esta fascinante manera de programar y diseñar independientemente (weno así leí por ahí), algo asi como el q tienen en las webs, (con sus hojas de estilo en cascada)

    Como ya te imaginaras, nos hemos familiarizado en la manera de programar en Ncapas (c#), y diseñar con su tradicional manera (no tan precisa ni atractiva). Es por eso q nos interesa aprender esta manera de presentar los formularios, a quien no le gustaría?

    Hemos indagado tu código y de otros mas de todas las formas y, no encuentro la manera de que nos pinte la data de la Base de Datos a la presentación WPF, nos interesa mas llenar una listView o un DataGridView, pero nada de nada …😦, nose que es lo pasa

    No trato de aprovecharme de tu nobleza, es demasiado con tremendo aporte q nos brindas aki y, el tiempo q nos compartes, el mas estoy muy agradecido, pero sino fuera mucha la molestia, de poder brindarme un tutorial o algo q me ayude a corregir estos errores q talvez tenga (q de seguro son insignificantes), o mejor aun un proyecto de estos q este seguro q si corren de verdad, sino fuera mucha la molestia por favor.

    Gracias de todas maneras

    Carloz (Perú)

    • julio 15, 2010 a las 3:34 pm

      @Carloz,

      Muchas gracias por escribir, claro que puedo ayudar solo aclarame bien lo que necesitas, segun entendi es como mostrar datos de una tabla de un BD en un grid o en list view dentro de WPF?. Solo confirma y con gusto coloco un ejemplo de como hacer o en su caso aclarame que es lo que pretendes hacer con tu sistema.

      Saludos.

  5. Edwin
    agosto 12, 2010 a las 4:50 pm

    Hola a todos espero que alguien me pueda ayudar. Estoy haciendo un sistema en Silverlight 3, uso wcf y wpf, necesito saber como puedo conectar mi wpf con wcf para poder ver los datos de las tablas de sql que estan un un servidor web.

    • agosto 23, 2010 a las 6:21 pm

      Que tal Edwin…
      bueno si usas Silverlight puedes echar mano de como trabaja con WCF y aplicarlo para WPF, es decir; mediante el uso de WebService, realiza web services para consultar, acutalizar y eliminar registros de tu base, tomando en cuenta que haces esto con silverlight y ya tienes WCF implementado sería lo más fácil.

      Saludos.

  6. LUIS TORRES
    septiembre 1, 2010 a las 2:14 am

    hola a todos. tengo un error segui todos los pasos pero entra en el try catch me dice que la propiedad ConnectionString no se a inicializado. espero que me puedad ayudar.

    cual quier colaboracion estes es mi correo luisgt14@hotmail.com si alguien tiene el proyecto si me lo puede mandar para revisar el codigo a ver si encuentro mi error

  7. octubre 10, 2011 a las 9:26 pm

    Puedes hacer lo mismo pero con un Grid? esto es algo de lo que hay poca info😦

  8. septiembre 29, 2012 a las 5:59 pm

    No se ha inicializado la propiedad ConnectionString. me marca ese error al quererlo conectar.

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: