Conectar a una base de datos en SQL Server con ASP.net C#

En todos los lenguajes, una de las partes más importantes, es la de conectar a una base de datos. En este artículo, útil para los principiantes, ayudaremos a entender los diferentes pasos para conectarnos a una base de datos. Todo esto lo lograremos en cinco sencillos pasos. Sí, ya se que existen muchas maneras de conectarse a bases de datos con C#, pero aquí voy a tratar de enfocarlo de manera más simple ,ya veréis. Así que, para seguir este artículo, será bueno tener algo de conocimiento sobre SQL y ASP.NET, sino, lo más probable es que te pierdas. Voy a utilizar SQL Server 2012 y Visual Studio 2012, pero el código que expongamos aquí es compatible con todas las versiones de Visual Studio y SQL Server anteriores.

Creamos un nuevo proyecto y le damos un nombre (en mi caso, le di el nombre de DatabaseConnectivity). Escogemos dentro de las plantillas que ofrece Visual Studio la que lleva como nombre "Web Form with Master Page" y también le damos un nombre (en mi caso le puse UserRegistration.aspx) y seleccionamos la Master Page. El próximo paso es crear el formulario de registro con el código que adjuntamos más abajo, y añadirlo en Content Place cuyo ID se llamará Content3.

<asp:Content ID="Content3" 
ContentPlaceHolderID="MainContent" runat="server">
    <table>
        <tr>
            <td>
                Name
            </td>
            <td>
                <asp:TextBox ID="txtName" 
                runat="server" 
                required="true"></asp:TextBox>
            </td>
        </tr> <tr>
            <td>
                Email
            </td>
            <td>
                <asp:TextBox ID="txtEmail" 
                runat="server" required="true" 
                type="Email"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td>
                Password
            </td>
            <td>
             <asp:TextBox ID="txtPassword" 
             runat="server" required="true" 
             type="Password"></asp:TextBox>
            </td>
        </tr> <tr>
            <td>
                Confirm Password
            </td>
            <td>
      <asp:TextBox ID="txtConfirmPassword" 
      runat="server" required="true" 
      type="Password"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td>
               Address
            </td>
            <td>
        <asp:TextBox ID="txtAddress" 
        runat="server" required="true" 
        TextMode="MultiLine"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td></td>
            <td>
                <asp:Button ID="btnSubmit" 
                runat="server" Text="Submit" />
            </td>
        </tr>
</table>
</asp:Content>

Ejecuta la aplicación después de configurar esta página como Página Principal (botón derecho en UserRegistration.aspx y seleccionar Página Principal). Cuando lo hagas, deberías obtener una página como esta:

El próximo paso es generar el evento de click del Submit del formulario. Para ello, basta con hacer clic derecho sobre el botón e ir a Propiedades. Una vez dentro, haz doble clic en evento click (o directamente haz doble clic sobre el botón). El programa nos generará un código tal que así:

protected void btnSubmit_Click(object sender, EventArgs e)
    {

    }

Como ya sabéis, el código para el correcto funcionamiento del botón ha de escribirse dentro de esta función. En nuestro caso, vamos a hacer la conexión aquí, y a registrar todos los valores que nos vengan del formulario en la base de datos. Para ello, he creado una base de datos llamada "Database Connectivity" y una tabla dentro, la cual he llamado "tblUser". Os dejo el código a continuación:

CREATE TABLE [dbo].[tblUser](
	[ID] [int] IDENTITY(1,1) NOT NULL,
	[Name] [nvarchar](50) NULL,
	[Email] [nvarchar](50) NULL,
	[Password] [nvarchar](50) NULL,
	[Address] [nvarchar](50) NULL,
 CONSTRAINT [PK_tblUser] PRIMARY KEY CLUSTERED 
(
	[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, _
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

Este script creará una tabla en la base de datos cuya primary key será el campo ID. He creado un procedimiento almacenado para ello, del cual podéis ver el código más abajo:

create proc spInsertUser
@Name Nvarchar(50),
@Email Nvarchar(50),
@Password Nvarchar(50),
@Address Nvarchar(50)
as
Insert into tblUser(Name,Email,Password,Address) values(@Name,@Email,@Password,@Address)

En el código de detrás, tendremos que recuperar los valores que se nos envían desde el formulario:

protected void btnSubmit_Click(object sender, EventArgs e)
 {
   string name = txtName.Text;
   string email = txtEmail.Text;
   string password = txtPassword.Text;
   string address = txtAddress.Text;
}

Ahora, podremos conectarnos con la base de datos y guardar estos campos en la tabla tblUser. Para ello tendremos que añadir dos namespaces en la página:

using System.Data;
using System.Data.SqlClient;

Una vez tenemos ya todo, podremos guardar esos valores en la base de datos en solo 5 pasos.

Hacer conexión

Para establecer la conexión con la base de datos, ADO.net proporciona una clase llamada SqlConnection. Por lo tanto, vamos a crear un objeto de esta clase y le pasaremos la cadena de conexión:

SqlConnection con = new SqlConnection
("Data Source=.;Initial Catalog = DatabaseConnectivity;Trusted_Connection=true;");

La variable con ahora es el objeto de la conexión SQL.

Abrir Conexión

con.Open();

Preparar el comando

Para preparar el comando ADO.net nos proporciona una clase llamada SqlCommand que es la que usamos a continuación:

SqlCommand com = new SqlCommand(); // Create a object of SqlCommand class
com.Connection = con; //Pass the connection object to Command
com.CommandType = CommandType.StoredProcedure; // We will use stored procedure.
com.CommandText = "spInsertUser"; //Stored Procedure Name

Añade los parámetros

Añade los valores que recogeremos del formulario que hemos creado antes:

com.Parameters.Add("@Name", SqlDbType.NVarChar).Value = name;
com.Parameters.Add("@Email", SqlDbType.NVarChar).Value = email;
com.Parameters.Add("@Password", SqlDbType.NVarChar).Value = password;
com.Parameters.Add("@Address", SqlDbType.NVarChar).Value = address;

Ejecuta el comando

com.ExecuteNonQuery();

El código completo sería así:

protected void btnSubmit_Click(object sender, EventArgs e)
   {
      string name = txtName.Text;
      string email = txtEmail.Text;
      string password = txtPassword.Text;
      string address = txtAddress.Text;

      try
        {
          SqlConnection con = new SqlConnection("Data Source=.;
          Initial Catalog = DatabaseConnectivity;Trusted_Connection=true;");
           con.Open();

           SqlCommand com = new SqlCommand(); // Create a object of SqlCommand class
           com.Connection = con; //Pass the connection object to Command
           com.CommandType = CommandType.StoredProcedure; // We will use stored procedure.
           com.CommandText = "spInsertUser"; //Stored Procedure Name

           com.Parameters.Add("@Name", SqlDbType.NVarChar).Value = name;
           com.Parameters.Add("@Email", SqlDbType.NVarChar).Value = email;
           com.Parameters.Add("@Password", SqlDbType.NVarChar).Value = password;
           com.Parameters.Add("@Address", SqlDbType.NVarChar).Value = address;

           com.ExecuteNonQuery();
        }
        catch (Exception ex)
          {

          }
        }   

Esperamos que este tutorial te haya sido de utilidad. Intentaremos traerte este tutorial en muchos lenguajes de programación para que, en el futuro, no tengas problemas para conectar con una base de datos. Y tú, ¿te has aclarado con los códigos expuestos anteriormente?

 

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
SIGUIENTE ARTÍCULO