Insertar, actualizar, eliminar: Conexión a la base de datos de ASP.NET
⚡ Resumen inteligente
ASP.NET se conecta a bases de datos como SQL Server y Oracle Mediante ADO.NET, se utilizan las clases SqlConnection, SqlCommand, SqlDataReader y SqlDataAdapter para abrir una conexión y ejecutar operaciones de selección, inserción, actualización y eliminación en los registros almacenados.
El acceso a datos de una base de datos es un aspecto importante de cualquier lenguaje de programación. Es necesario que cualquier lenguaje de programación tenga la capacidad de trabajar con bases de datos.
ASP.NET tiene la capacidad de trabajar con diferentes tipos de bases de datos. Puede trabajar con las bases de datos más comunes, como Oracle y Microsoft SQL Server.
También tiene la capacidad de trabajar con nuevas formas de bases de datos como MongoDB y MySQL.
Fundamentos de la conectividad de bases de datos
ASP.NET tiene la capacidad de trabajar con la mayoría de las bases de datos, siendo la más común Oracle y Microsoft SQL Server. Pero con cada base de datos, la lógica detrás de trabajar con todas ellas es prácticamente la misma.
En nuestros ejemplos, veremos cómo trabajar con el Microsoft SQL Server como nuestra base de datos. Para fines de aprendizaje, se puede descargar y utilizar el Microsoft SQL Server Edición Express. Este es un software de base de datos gratuito proporcionado por Microsoft.
Al trabajar con bases de datos, los siguientes conceptos son comunes a todas ellas:
- Conexión – Para trabajar con los datos de una base de datos, el primer paso obvio es la conexión. La conexión a una base de datos normalmente consta de los parámetros que se mencionan a continuación.
- Nombre de la base de datos o fuente de datos – El primer parámetro importante es el nombre de la base de datos. Cada conexión sólo puede funcionar con una base de datos a la vez.
- Credenciales – El siguiente aspecto importante es el nombre de usuario y la contraseña. Estos se utilizan para establecer una conexión con la base de datos.
- Parámetros opcionales – Puede especificar parámetros opcionales sobre cómo .NET debe gestionar la conexión a la base de datos. Por ejemplo, se puede especificar un parámetro para indicar cuánto tiempo debe permanecer activa la conexión.
- Seleccionar datos de la base de datos Una vez establecida la conexión, se recuperan los datos de la base de datos. ASP.NET permite ejecutar consultas SQL en la base de datos. Esta consulta SQL se puede utilizar para obtener datos de una tabla específica.
- Insertar datos en la base de datos. – ASP.NET se utiliza para insertar registros en la base de datos. Los valores para cada fila que se debe insertar en la base de datos se especifican en ASP.NET.
- Actualización de datos en la base de datos. – ASP.NET también se puede utilizar para actualizar los registros existentes en la base de datos. Se pueden especificar nuevos valores en ASP.NET para cada fila que necesite actualizarse en la base de datos.
- Eliminar datos de una base de datos – ASP.NET también se puede utilizar para eliminar registros de la base de datos. El código está escrito para eliminar una fila específica de la base de datos.
Ahora que hemos visto la parte teórica de cada operación, veamos cómo realizar operaciones de base de datos en ASP.NET.
Conexiones de bases de datos ASP.NET
Veamos ahora el código necesario para establecer una conexión con una base de datos. En nuestro ejemplo, nos conectaremos a una base de datos llamada Demodb. Las credenciales para conectarse a la base de datos se muestran a continuación:
- Nombre de usuario – sa
- Contraseña – demo123
Vamos a trabajar con la aplicación web que hemos creado en las secciones anteriores.
- Comience a agregarle operaciones de base de datos.
- Nuestro ejemplo muestra cómo establecer una conexión simple. Esta conexión se realiza con la base de datos Demodb. Esto sucede cuando se carga la página por primera vez.
- Cuando se establezca la conexión, se enviará un mensaje al usuario. El mensaje indicará que se ha establecido la conexión.
Sigamos los pasos que se mencionan a continuación para lograrlo.
Paso 1) Primero, asegúrese de tener abierta su aplicación web (DemoApplication) en Visual Studio. Double-Haz clic en el archivo demo.aspx.cs para introducir el código de conexión a la base de datos.
Paso 2) Agregue el siguiente código que se utilizará para establecer una conexión a la base de datos.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string connectionString; SqlConnection cnn; connectionString = @"Data Source=WIN-50GP30FGO75;Initial Catalog=Demodb;User ID=sa;Password=demo123"; cnn = new SqlConnection(connectionString); cnn.Open(); Response.Write("Connection Made"); cnn.Close(); } } }
Code Explicación:-
- El primer paso es crear variables. Estas se utilizarán para crear la cadena de conexión y la conexión a la base de datos de SQL Server.
- El siguiente paso es crear la cadena de conexión. La cadena de conexión consta de las siguientes partes:
- Origen de datos: este es el nombre del servidor donde reside la base de datos. En nuestro caso, reside en una máquina llamada WIN-50GP30FGO75.
- El catálogo inicial se utiliza para especificar el nombre de la base de datos.
- El nombre de usuario y la contraseña son las credenciales necesarias para conectarse a la base de datos.
- A continuación, asignamos la cadena de conexión a la variable cnn.
- La variable cnn es de tipo SqlConnection. Esto se utiliza para establecer una conexión con la base de datos.
- SqlConnection es una clase de ASP.NET que se utiliza para crear una conexión a una base de datos.
- Para usar esta clase, primero debe crear un objeto de esta clase. Por lo tanto, aquí creamos una variable llamada cnn que es de tipo SqlConnection.
- A continuación, utilizamos el método Open de la variable cnn para establecer una conexión con la base de datos. Mostramos un mensaje al usuario indicando que la conexión se ha establecido. Esto se realiza mediante el método Response.Write. Finalmente, cerramos la conexión con la base de datos.
Cuando se establece el código anterior y se ejecuta el proyecto utilizando Visual StudioObtendrá el siguiente resultado. Una vez que se muestre el formulario, haga clic en el botón Conectar.
Salida:-
El mensaje de salida que se muestra en el navegador mostrará que se ha realizado la conexión a la base de datos.
ASP.NET Leer base de datos usando SqlDataReader
Para mostrar los datos a los que se accede mediante ASP.NET, supongamos que nuestra base de datos contiene los siguientes elementos.
- Una tabla llamada demotb. Esta tabla se utilizará para almacenar los ID y nombres de varios tutoriales.
- La tabla tendrá dos columnas, una llamada TutorialID y la otra llamada TutorialName.
- Por el momento, la tabla tendrá dos filas como se muestra a continuación.
| ID del tutorial | Nombre del tutorial |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
Modifiquemos el código para poder consultar estos datos y mostrar la información en la página web. Tenga en cuenta que el código introducido es una continuación del escrito para el módulo de conexión de datos.
Paso 1) Dividamos el código en dos partes:
- La primera parte consistirá en construir nuestra sentencia SELECT. Esta se utilizará para leer los datos de la base de datos.
- A continuación, ejecutaremos la consulta SELECT en la base de datos. Esto recuperará todas las filas de la tabla correspondientes.
Code Explicación:-
- El primer paso es crear las siguientes variables:
- SqlCommand: SqlCommand es una clase definida en C#. Esta clase se utiliza para realizar operaciones de lectura y escritura en la base de datos.
- El objeto DataReader se utiliza para obtener todos los datos especificados por la consulta SQL. Luego podemos leer todas las filas de la tabla una por una usando el lector de datos.
- A continuación, definimos dos variables de cadena. Una es `sql`, que almacenará nuestra cadena de comando SQL. La otra es `Output`, que contendrá todos los valores de la tabla.
- El siguiente paso es definir la sentencia SQL. En nuestro caso, es “SELECT TutorialID, TutorialName FROM demotb”. Esto recuperará todas las filas de la tabla demotb.
- A continuación, creamos el objeto de comando que se utiliza para ejecutar la declaración SQL en la base de datos. En el comando SQL, debe pasar el objeto de conexión y la cadena SQL.
- A continuación, ejecutamos el comando de lectura de datos, que recuperará todas las filas de la tabla demotb.
- Ahora que tenemos todas las filas de la tabla, necesitamos un mecanismo para acceder a ellas una por una.
- Para ello, utilizamos la instrucción while para acceder a las filas del lector de datos una por una.
- A continuación, utilizamos el método GetValue para obtener el valor de TutorialID y TutorialName.
Paso 2) En el último paso, mostramos el resultado al usuario. Luego, cerramos todos los objetos relacionados con la operación de base de datos.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataReader dataReader; String sql, Output = " "; sql = "Select TutorialID,TutorialName from demotb"; command = new SqlCommand(sql, cnn); dataReader = command.ExecuteReader(); while (dataReader.Read()) { Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>"; } Response.Write(Output); dataReader.Close(); command.Dispose(); cnn.Close(); } } }
Code Explicación:-
- Continuamos nuestro código mostrando el valor de la variable Output. Esto se realiza mediante el método Response.Write.
- Finalmente, cerramos todos los objetos relacionados con nuestra operación de base de datos. Recuerda que esto siempre es una buena práctica.
Cuando se configura el código anterior y se ejecuta el proyecto usando Visual Studio, obtendrá la siguiente salida.
Salida:-
A partir del resultado, se puede ver claramente que el programa pudo obtener los valores de la base de datos. Luego, los datos se muestran en el navegador para el usuario.
Insertar registro de base de datos usando InsertCommand
Al igual que permite acceder a los datos, ASP.NET también tiene la capacidad de insertar registros en la base de datos. Tomemos como ejemplo la misma estructura de tabla que se utiliza para insertar registros.
| ID del tutorial | Nombre del tutorial |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
Vamos a modificar el código de nuestro formulario para poder insertar la siguiente fila en la tabla:
| ID del tutorial | Nombre del tutorial |
|---|---|
| 3 | VB.Net |
Paso 1) Como primer paso, agreguemos el siguiente código a nuestro programa. El fragmento de código que se muestra a continuación se utilizará para insertar un registro en nuestra base de datos.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataAdapter adapter = new SqlDataAdapter(); String sql = ""; sql = "Insert into demotb(TutorialID,TutorialName) values(3,'VB.Net')"; command = new SqlCommand(sql, cnn); adapter.InsertCommand = new SqlCommand(sql, cnn); adapter.InsertCommand.ExecuteNonQuery(); command.Dispose(); cnn.Close(); } } }
Code Explicación:-
- El primer paso es crear las siguientes variables:
- SqlCommand: este tipo de datos se utiliza para definir objetos que realizan operaciones SQL en una base de datos. Este objeto contendrá el comando SQL que se ejecutará en nuestra base de datos de SQL Server.
- El objeto DataAdapter se utiliza para ejecutar comandos SQL de inserción, eliminación y actualización.
- A continuación, definimos una variable de cadena, llamada sql, para almacenar nuestra cadena de comando SQL.
- El siguiente paso es definir la sentencia SQL. En nuestro caso, estamos ejecutando una sentencia INSERT. Esta insertará el registro con TutorialID=3 y TutorialName=VB.Net.
- A continuación, creamos el objeto de comando que se utiliza para ejecutar la declaración SQL en la base de datos. En el comando SQL, debe pasar el objeto de conexión y la cadena SQL.
- En nuestro comando del adaptador de datos:
- Asocie el comando insertar SQL al adaptador.
- A continuación, se llama al método ExecuteNonQuery. Este método se utiliza para ejecutar la instrucción INSERT en nuestra base de datos.
- El método ExecuteNonQuery se utiliza en C# para emitir cualquier sentencia DML (operación de inserción, eliminación y actualización) contra la base de datos.
- Finalmente, cerramos todos los objetos relacionados con nuestra operación de base de datos. Recuerda que esto siempre es una buena práctica.
Paso 2) Como segundo paso, añadiremos el mismo código que en la sección de acceso a datos. Esto servirá para mostrar los datos recientes de la tabla en el navegador. Para ello, añadiremos el siguiente código al archivo demo.aspx.cs.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataReader dataReader; String sql, Output = " "; sql = "Select TutorialID,TutorialName from demotb"; command = new SqlCommand(sql, cnn); dataReader = command.ExecuteReader(); while (dataReader.Read()) { Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>"; } Response.Write(Output); dataReader.Close(); command.Dispose(); cnn.Close(); } } }
Cuando se configura el código anterior y se ejecuta el proyecto en Visual Studio, obtendrá el siguiente resultado.
Salida:-
En la ventana del navegador, verá que la fila se ha insertado correctamente en la base de datos.
Actualizar registro de base de datos usando UpdateCommand
ASP.NET permite actualizar registros existentes en una base de datos. Utilicemos la misma estructura de tabla que se usó anteriormente en el ejemplo para insertar registros.
| ID del tutorial | Nombre del tutorial |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
| 3 | VB.Net |
Vamos a modificar el código de nuestro formulario para poder actualizar la siguiente fila. El valor anterior de la fila es TutorialID como 3 y TutorialName como VB.Net, que actualizaremos a “VB.Net Complete”, mientras que el valor de la fila para TutorialID permanecerá igual.
vieja fila
| ID del tutorial | Nombre del tutorial |
|---|---|
| 3 | VB.Net |
Nueva fila
| ID del tutorial | Nombre del tutorial |
|---|---|
| 3 | VB.Net completo |
Paso 1) Como primer paso, agreguemos el siguiente código a nuestro programa. El fragmento de código que se muestra a continuación se utilizará para actualizar un registro existente en nuestra base de datos.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataAdapter adapter = new SqlDataAdapter(); String sql = ""; sql = "Update demotb set TutorialName='VB.Net Complete' where TutorialID=3"; command = new SqlCommand(sql, cnn); adapter.InsertCommand = new SqlCommand(sql, cnn); adapter.InsertCommand.ExecuteNonQuery(); command.Dispose(); cnn.Close(); } } }
Code Explicación:-
- El primer paso es crear las siguientes variables:
- SqlCommand: este tipo de datos se utiliza para definir objetos que realizan operaciones SQL en una base de datos. Este objeto contendrá el comando SQL que se ejecutará en nuestra base de datos de SQL Server.
- El objeto DataAdapter se utiliza para ejecutar comandos SQL de inserción, eliminación y actualización.
- A continuación, definimos una variable de cadena, llamada sql, para almacenar nuestra cadena de comando SQL.
- El siguiente paso es definir la instrucción SQL. En nuestro caso, estamos ejecutando una instrucción de actualización. Esto actualizará el TutorialName a “VB.Net Complete”. El TutorialID permanecerá sin cambios y su valor será 3.
- A continuación, creamos el objeto de comando. Este se utiliza para ejecutar la instrucción SQL en la base de datos. En el comando SQL, se pasan el objeto de conexión y la cadena SQL.
- En el comando de nuestro adaptador de datos, asociamos el comando SQL a nuestro adaptador. A continuación, ejecutamos el método ExecuteNonQuery. Este método se utiliza para ejecutar la instrucción de actualización en nuestra base de datos.
- Finalmente, cerramos todos los objetos relacionados con nuestra operación de base de datos. Recuerda que esto siempre es una buena práctica.
Paso 2) Como segundo paso, agreguemos el mismo código que en la sección de acceso a datos. Esto es para mostrar los datos recientes de la tabla en el navegador. Para ello, agregaremos el siguiente código.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataReader dataReader; String sql, Output = " "; sql = "Select TutorialID,TutorialName from demotb"; command = new SqlCommand(sql, cnn); dataReader = command.ExecuteReader(); while (dataReader.Read()) { Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>"; } Response.Write(Output); dataReader.Close(); command.Dispose(); cnn.Close(); } } }
Cuando se configura el código anterior y se ejecuta el proyecto usando Visual Studio, obtendrá la siguiente salida.
Salida:-
En la ventana del navegador, verá que la fila se actualizó correctamente en la base de datos.
Eliminar registro de base de datos usando DeleteCommand
ASP.NET puede eliminar registros existentes de una base de datos. Tomemos la misma estructura de tabla que se usó anteriormente para el ejemplo de eliminación de registros.
| ID del tutorial | Nombre del tutorial |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
| 3 | VB.Net completo |
Vamos a modificar el código de nuestro formulario para poder eliminar la siguiente fila:
| ID del tutorial | Nombre del tutorial |
|---|---|
| 3 | VB.Net completo |
Paso 1) Como primer paso, agreguemos el siguiente código a nuestro programa. Este fragmento de código se utilizará para eliminar un registro existente en nuestra base de datos.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataAdapter adapter = new SqlDataAdapter(); String sql = ""; sql = "Delete demotb where TutorialID=3"; command = new SqlCommand(sql, cnn); adapter.DeleteCommand = new SqlCommand(sql, cnn); adapter.DeleteCommand.ExecuteNonQuery(); command.Dispose(); cnn.Close(); } } }
Code Explicación:-
- La principal diferencia en este código es que ahora estamos utilizando la instrucción SQL DELETE. Esta instrucción se usa para eliminar la fila de la tabla demotb cuyo campo TutorialID tiene el valor 3.
- En el comando de nuestro adaptador de datos, asociamos el comando SQL DELETE a nuestro adaptador. También utilizamos el método ExecuteNonQuery, que se emplea para ejecutar la instrucción DELETE en nuestra base de datos.
Paso 2) Como segundo paso, agreguemos el mismo código que en la sección de acceso a datos. Esto es para mostrar los datos recientes de la tabla en el navegador. Para ello, agregaremos el siguiente código.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataReader dataReader; String sql, Output = " "; sql = "Select TutorialID,TutorialName from demotb"; command = new SqlCommand(sql, cnn); dataReader = command.ExecuteReader(); while (dataReader.Read()) { Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>"; } Response.Write(Output); dataReader.Close(); command.Dispose(); cnn.Close(); } } }
Cuando se configura el código anterior y se ejecuta el proyecto usando Visual Studio, obtendrá la siguiente salida.
Salida:-
Conectar controles ASP.NET a datos
Hemos visto cómo usar comandos de ASP.NET, como SqlCommand y SqlDataReader, para obtener datos de una base de datos. También vimos cómo leer cada fila de la tabla y mostrarla en la página web.
Existen métodos para vincular controles directamente a diferentes campos de la tabla. Por el momento, solo los siguientes controles pueden vincularse a una aplicación ASP.NET:
- ComprobarBoxLista
- Lista de botones de radio
- Lista desplegable
- ListaBox
Veamos un ejemplo de cómo podemos usar el enlace de controles en ASP.NET. Aquí tomaremos una lista.Box Ejemplo. Digamos que tenemos los siguientes datos en nuestra base de datos.
| ID del tutorial | Nombre del tutorial |
|---|---|
| 1 | C# |
| 2 | ASP.Net |
| 3 | VB.Net completo |
Usemos la listaBox Controla y observa cómo puede obtener automáticamente los datos de nuestra tabla demotb. Sigamos los pasos que se indican a continuación para lograrlo.
Paso 1) Construye el formulario web básico. Desde la caja de herramientas de Visual Studio, arrastra y suelta 2 componentes: etiquetas y lista.Boxes. A continuación, realice los siguientes subpasos:
- Establezca el valor de texto de la primera etiqueta como TutorialID.
- Establezca el valor de texto de la segunda etiqueta como TutorialName.
A continuación se muestra el aspecto que tendría el formulario una vez realizados los pasos mencionados anteriormente.
Paso 2) El siguiente paso es comenzar a conectar cada lista.Box a la tabla de la base de datos.
- Primero, haga clic en la ListaBox para TutorialID. Esto abrirá otro cuadro de diálogo al lado del control.
- En el cuadro de diálogo, haga clic en la opción Elegir origen de datos.
Paso 3) A continuación, aparecerá un cuadro de diálogo. Este cuadro permite crear una nueva fuente de datos. La fuente de datos representará una conexión a la base de datos. Seleccione la opción «Nueva fuente de datos».
Paso 4) Aparecerá la siguiente pantalla después de elegir la nueva fuente de datos en el último paso. Aquí debemos mencionar el tipo de fuente de datos que queremos crear.
- Elija la opción de base de datos para trabajar con una base de datos de SQL Server.
- Ahora necesitamos darle un nombre a nuestra fuente de datos. Aquí le damos el nombre de DemoDataSource.
- Finalmente, hacemos clic en el botón Aceptar para pasar a la siguiente pantalla.
Paso 5) Ahora necesitamos crear una conexión a nuestra base de datos. En la siguiente pantalla, haga clic en el botón Nueva conexión.
Paso 6) A continuación debe agregar las credenciales para conectarse a la base de datos.
- Seleccione el nombre del servidor donde reside el servidor SQL.
- Introduzca el nombre de usuario y la contraseña para conectarse a la base de datos.
- Seleccione la base de datos como demotb.
- Haga clic en el botón Aceptar.
Paso 7) En la siguiente pantalla, podrá ver la tabla demotb. Simplemente haga clic en el botón Siguiente para aceptar la configuración predeterminada.
Paso 8) Ahora podrá probar la conexión en la siguiente pantalla.
- Haz clic en el botón "Probar consulta" para comprobar si puedes obtener los valores de la tabla.
- Haga clic en el botón Finalizar para completar el asistente.
Paso 9) Ahora, en la pantalla final, puede hacer clic en el botón Aceptar. Esto vinculará la lista TutorialID.Box al nombre del campo TutorialID en la tabla demotb.
Paso 10) Ahora es el momento de vincular la lista TutorialName.Box al campo TutorialName.
- Primero, haga clic en la lista TutorialName.Box.
- A continuación, seleccione Origen de datos en el cuadro de diálogo que aparece al lado de la Lista.Box.
Paso 11) Ya verá DemoDataSource al elegir la fuente de datos en la siguiente pantalla.
- Seleccione DemoDataSource.
- Haga clic en el botón Aceptar.
Si todos los pasos anteriores se ejecutan como se muestra, obtendrá el resultado que se menciona a continuación.
Salida:-
A partir de la salida, puede ver que la listaBoxSe muestran el TutorialID y el TutorialName respectivamente.




























