Realizando una Aplicación Web con Conexión a Base de Datos SQL Server

Publicado: 16 junio, 2012 en Asp.Net

En este post, conoceremos la forma de realizar una conexión a nuestra Base de Datos SQL Server a través de una aplicación Web ASPX bajo Framework 4.0

image

En primer lugar: Creamos un Nuevo Proyecto Web y seleccionamos la plantilla “ASP.NET Empty Web Application” y lo nombraremos “ConexionBD_SQL”.

El segundo paso será agregar el Folder de ASP.NET “App_Data” el cual utilizaremos para almacenar la Base de Datos. Para esto vamos al menú      ProjectAdd ASP.NET Folder  y seleccionamos "App_Data"

Una vez agregado el folder “App_Data”, deberemos adicionar un Nuevo Item de tipo “Web Form” que llamaremos “Default.aspx” para esto vamos al menú Project y escogemos la opción Add New Item.

image

Ahora sobre la carpeta App_Data del Explorador de Soluciones pulsaremos click inverso y para agregar un Nuevo Item de tipo “SQL Server Database” que llamaremos “CodigoFuente.mdf

image

image

Ahora ya tenemos creada la Base de Datos. Daremos click inverso sobre la BD y pulsaremos sobre Open para visualizarla en el “Server Explorer” y así proceder a crear una tabla llamada “tbl_Personas” que tendrá los campos “Cedula, Nombres, Apellidos y Correo” como se muestra a continuación.

image

image

Después de creada la tabla dentro de la Base de Datos,  abriremos el archivo “Web.config” que se encuentra en el “Solution Explorer” para configurar la conexión con la Base de Datos. Para esto debemos incluir las líneas que están dentro del cuadro rojo como se muestra a continuación.

image

Abriremos el formulario web que creamos anteriormente “Default.aspx” para diseñar el entorno visual para ingresar la Información en la Base de Datos. Agregaremos una Tabla de 2 columnas x 5 Filas, 4 Textbox y 2 Botones. Siguiendo la siguiente estructura:

image

Tendrá un aspecto visual como este:

image

Ahora deberemos crear nuestro código para Insertar registros al invocar el evento Click del botón Guardar y código para Consultar al invocar el evento Click del botón Consultar.

En primer lugar presionaremos Doble Click sobre el botón Guardar e incluiremos el siguiente código:

a)      Se adicionaran los siguientes Espacios de Nombres:

using System.Data; //Utilizado para realizar Operaciones DML con la Base de Datos SQL Server

using System.Data.SqlClient; //Utilizado para realizar Operaciones DML con la Base de Datos SQL Server

using System.Configuration; //Utilizada para extraer la cadena de conexion de nuestro archivo Web.config y poder usarla en nuestra aplicación

b)  Crearemos la variable sqlConn de tipo SqlConnection y a ésta le asignaremos la cadena de conexión que creamos en el archivo Web.config. Esto lo hacemos a través de la instrucción (ConfigurationManager.ConnectionStrings["CF"].ConnectionString) donde “CF” es el nombre que le dimos a la conexión. La instrucción quedaría de la siguiente manera:

var sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["CF"].ConnectionString);

c)       Luego creamos la variable strSQL donde ingresaremos la sentencia SQL a ejecutar, en nuestro caso, la sentencia INSERT INTO. Dentro de la sentencia vincularemos los Textbox para insertar la información que el usuario ingrese, de la siguiente manera:

var strSQL = "INSERT INTO tbl_Personas VALUES (‘"+txtCedula.Text+"’,’"+txtNombre.Text+"’,’"+txtApellidos.Text+"’,’"+txtCorreo.Text+"’)";

d)      Seguido a esto se crea la variable cmd de tipo SqlCommand y como argumentos le pasaremos la sentencia a ejecutar (strSQL) y la conexión a utilizar (sqlConn).

var cmd = new SqlCommand(strSQL, sqlConn);

e)  Abrimos la conexion:  sqlConn.Open();

f)  Ejecutamos el comando a través del método ExecuteNonQuery: cmd.ExecuteNonQuery();

g)  Cerramos la conexión: sqlConn.Close();

h)  El código completo quedaría así:

image

Con esto ya tenemos listo le código para el botón Insertar.

Luego se creará el código para Consultar registros al invocar el evento Click del botón Consultar una vez hallamos digitado la Cedula, para esto presionamos Doble Click sobre el botón Consultar e incluiremos el siguiente código:

a)      Crearemos la variable sqlConn de tipo SqlConnection y a ésta le asignaremos la cadena de conexión que creamos en el archivo Web.config. Esto lo hacemos a través de la instrucción (ConfigurationManager.ConnectionStrings["CF"].ConnectionString) donde “CF” es el nombre que le dimos a la conexión. La instrucción quedaría de la siguiente manera:

var sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["CF"].ConnectionString);

b)      Luego creamos la variable strSQL donde ingresaremos la sentencia SQL a ejecutar, en nuestro caso, la sentencia SELECT * FROM. Dentro de la sentencia vincularemos El Textbox la Cedula (txtCedula) para enviárselo como parámetro a la instrucción SQL, de la siguiente manera:

var strSQL = "SELECT * FROM tbl_Personas WHERE Cedula = ‘" + txtCedula.Text + "’";

 

c)       Seguido a esto se crea la variable cmd de tipo SqlCommand y como argumentos le pasaremos la sentencia a ejecutar (strSQL) y la conexión a utilizar (sqlConn).

var cmd = new SqlCommand(strSQL, sqlConn);

d)  Se crea una variable llamada “ds” de tipo DataSet la cual utilizaremos para almacenar el resultado de nuestra consulta.

var ds = new DataSet();

e)      Se crea la variable llamada “da” de tipo SqlDataAdapter la cual se encargará de llenar el DataSet que creamos anteriormente y le enviamos como Argumento el comando a ejecutar.

var da = new SqlDataAdapter(cmd);

f)  Abrimos la conexion:  sqlConn.Open();

g)      A partir de SqlDataAdapter creado “da” hacemos uso de su propiedad Fill para llenar el DataSet con el resultado de la ejecución del comando “cmd”. A esta instrucción le enviamos 2 argumentos (el DataSet a cargar y el nombre de la Tabla que se utilizará)

h)       Cerramos la conexión: sqlConn.Close();

i)        Establecemos una variable de tipo DataTable “dt”, de esta manera podremos extraer la información contenida en el DataSet. Para esto, a través de la propiedad Rows, indicamos la fila y la columna donde se encuentra la información de deseamos extraer. Ejemplo: En la tabla tbl_Personas, el primer campo es la Cedula, para acceder a esta podemos decirle que de la Fila [0] extraiga la columna [0].

 

j)        El código quedaría de la siguiente manera:

 

image

Antes de ejecutar nuestra aplicación verificaremos que no hallan registros en la tabla “tbl_Personas”, para esto abrimos el “Server Explorer”, desplegamos el contenido de la Base de Datos “CodigoFuente.mdf” , vamos hasta tablas y desplegamos su contenido, Ahora pulsamos click inverso sobre la tabla “tbl_Personas” y elegimos la opción “Show Table Data”.

image

image

 

Ya en este punto, procedemos a ejecutar nuestra aplicación. Presionamos F5 para iniciar.

image

 

Ingresamos Nuestros datos y presionamos Guardar.

image

Al Guardar el registro, realizamos nuevamente el proceso para ver los datos que están dentro de la tabla “tbl_Personas”. Podemos ver que ya se ha almacenado nuestro registro.

image

 

Para terminar, realizaremos una consulta sobre el registro ingresado anteriormente. Para esto, en el campo Cedula digitamos el No. De Identificación de la persona que deseamos consultar, en este caso “12345” y pulsamos sobre el botón Consultar para obtener la información correspondiente a la persona (Nombres, Apellidos y Correo).

 

image

image

Amigos! Ya con esto hemos terminado este post, si tienen dudas por favor dejen sus comentarios y hasta un próximo Post.

Aquí les dejo el link para Descargar el código fuente en C#.

comentarios
  1. Maialen dice:

    Me ha venido de lujo este post, te lo agradezco mucho por que se me han aclarado bastantes ideas, pero tengo una duda, he creado anteriormente una base de datos con el SQL Server Management Studio. Como le indico a la aplicación web que quiero una base de datos ya creada?
    o si no, si creo la base de datos tal y como se indica en el post, tengo luego opción a verla en el SQL Server Management Studio?

    Gracias por tu ayuda;

    Un saludo

    • Hola Maialen, muchas gracias por tu comentario.
      Si ya tienes creada la Base de Datos en SQL Server solo debes modificar la cadena de conexion en el Web.config. Quedaria algo así:

      ++ reemplaza Signo «Menor que»
      — reemplaza Signo «Mayor que»

      ++ connectionStrings —
      ++add name=»NombreDeLaConexion» connectionString=»Data Source=NombreServidor;Initial Catalog=NombreBaseDatos;User ID=UsuarioBD;Password=ContraseñaBD» /–
      ++/connectionStrings —

      Saludos.
      Andres Triana

  2. Maialen dice:

    Ya puedo ver lo que has escrito, muchas gracias, probare y te comentare haber que tal me va.
    Gracias por todo y un saludo

    • Maialen dice:

      Ya he averiguado lo de los ++ y -. No se lo que estaba pensando 🙂

      Pero cual es el nombre de al conexion?

      • Maialen, el Nombre de la Conexion es con el que vas a llamar la conexion desde el codigo fuente de tu aplicacion, en el tutorial yo llame la conexion «CF» y por medio de este nombre realizo los procesos contra la base de datos. Tu puedes ponerle el nombre que desees.

        Desde el Codigo se llamaría asi:

        var sqlConn = new SqlConnection(ConfigurationManager.ConnectionString[«NombreDeLaConexion»].ConnectionString;

        Saludos!!

  3. Javier dice:

    Hola, espero me puedan ayudar, me da este error en la linea 23, ya abrí los puertos tcp y udp y aún así nada.

    Error relacionado con la red o específico de la instancia mientras se establecía una conexión con el servidor SQL Server. No se encontró el servidor o éste no estaba accesible. Compruebe que el nombre de la instancia es correcto y que SQL Server está configurado para admitir conexiones remotas. (provider: SQL Network Interfaces, error: 26 – Error al buscar el servidor o instancia especificado)
    Línea 22: var cmd = new SqlCommand(strSQL, sqlConn);
    Línea 23: sqlConn.Open();
    Línea 24: cmd.ExecuteNonQuery();
    Línea 25: sqlConn.Close();

    • Hola Javier.

      Por favor anexas la cadena de conexion. Al parecer el error indica q estas ingresando la instancia o la base de datos incorrecta.

      Quedo atento. Gracias

      • Javier dice:

        en web.config

        en Default.aspx
        var sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings[«CF»].ConnectionString);
        var strSQL = «INSERT INTO tbl_Personas VALUES (‘» + txtCedula.Text + «’,‘» + txtNombre.Text + «’,'» + txtApellidos.Text + «’,'» + txtCorreo.Text + «’)»;
        var cmd = new SqlCommand(strSQL, sqlConn);
        sqlConn.Open();
        cmd.ExecuteNonQuery();
        sqlConn.Close();

      • Javier dice:

        en web.config

    • Javier dice:

      ah no aparecia por los signos ahi de nuevo:
      ++connectionStrings-
      ++add name=»CF»
      connectionString=»Data Source=.\SQLEXPRESS;
      AttachDbFilename =|DataDirectory| CodigoFuente.mdf;
      User Instance = True»/-
      ++/connectionStrings-

      • Javier.
        Por favor verifica q la instancia de sql EXPRESS tenga el mismo nombre q configuraste en la cadena de conexion. Adicional verifica que el servicio de esta instancia este iniciado.

        Saludos!

  4. Herr_Zilev dice:

    oye gracias por el tutorial enserio, solo tengo una pregunta
    tengo el clavito de que me tira este error:

    An exception of type ‘System.ArgumentException’ occurred in System.Data.dll but was not handled in user code

    Additional information: Keyword not supported: ‘integated security’.

    en la linea de

    var sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings[«CF»].ConnectionString);

    podrias decirme que fue lo que hice mal??

  5. Herr_Zilev dice:

    oye solo no me quedo muy claro como quedaria si ya cree mi base de datos por otro lado, como la llamo en el sqlConnection y como en html 😛

    • Hola William!
      Este ejemplo es para .NET, y si deseas conectarte a otra base de datos, debes tener claro cual es el nombre de Servidor (Data Source) y el nombre de la Base de datos «Initial Catalog», y si vas a utilizar un proveedor distinto a SQL como MySql por ejemplo… debes tener en cuenta el Provider dentro de la cadena de conexion, para este caso seria «System.Data.MySqlClient»

      Saludos

Deja un comentario