Consulta SELECT para bases de datos en C#

Muhammad Husnain 12 octubre 2023
  1. Que es una base de datos
  2. Conexión a base de datos en C#
Consulta SELECT para bases de datos en C#

Este artículo lo guía a través de la configuración de una conexión de base de datos con la aplicación C# y la obtención de datos de diferentes tablas mediante la consulta SELECT de la base de datos.

Que es una base de datos

Una base de datos no es simplemente una colección de datos organizados en forma tabular, sino mucho más. Representa datos en una estructura organizada con convenciones de nomenclatura adecuadas y relaciones con otras tablas.

El sistema de gestión de la base de datos también proporciona un lenguaje para interactuar con la base de datos (por ejemplo, SQL), que es muy parecido al idioma inglés y, por lo tanto, muy fácil de entender para el usuario. También nos proporciona seguridad de datos y esquemas de optimización para aumentar el rendimiento de las operaciones de datos.

Conexión a base de datos en C#

Por lo general, los programadores utilizan bases de datos para almacenar los datos de sus aplicaciones. El lenguaje C# proporciona programación de base de datos con la base de datos Oracle y la base de datos del servidor Microsoft SQL.

C# también puede funcionar con muchas otras bases de datos, pero las dos anteriores son las más comunes y ampliamente utilizadas. Cualquiera que sea su base de datos, la lógica detrás de cada base de datos es bastante la misma.

Este artículo utilizará la base de datos de SQL Server para realizar operaciones. El espacio de nombres que se requiere para las operaciones de la base de datos es System.data.SqlClient.

Contiene todas las clases que se requerirán durante la conexión y las operaciones de la base de datos.

Crear una base de datos en SQL Server

El primer paso es crear una base de datos con la que necesita interactuar dentro de SQL Server. Esta base de datos se crea utilizando la siguiente consulta.

create database mydb;

use mydb;

CREATE TABLE Student(
    studentID varchar(20) NOT NULL PRIMARY KEY,
    stuentName varchar(60) NOT NULL
);

insert into Student values("BS01", 'David');
insert into Student values("BS02", 'John');

Después de ejecutar estas consultas, se creará una base de datos con la tabla Estudiante y tendrá 2 filas.

Hacer una conexión con la base de datos en C#

Para interactuar con una base de datos, necesita algunos parámetros. Estos parámetros se combinan para formar una cadena de conexión.

  1. Nombre de la base de datos: debe proporcionar el nombre de la base de datos de la que necesita leer los datos. Se recomienda utilizar sólo una base de datos a la vez.
  2. Credenciales de la base de datos: siempre hay un nombre de usuario y una contraseña para interactuar con una base de datos, por lo que debe proporcionar ese nombre de usuario y contraseña autorizados.
  3. Algunos parámetros opcionales: también puede proporcionar algunos parámetros opcionales. Por ejemplo, puede establecer un valor de tiempo de espera para que la conexión se cierre si la base de datos permanece inactiva durante un período determinado.

Veamos el código de ejemplo donde realizaremos una conexión con la base de datos. Supongamos que el nombre de usuario de la base de datos es usr y la contraseña es usr123.

SqlConnection conn;
string connectString =
    @"Data Source=DESKTOP-FQ8R559;Initial Catalog=mydb;User ID=usr;Password=usr123";

conn = new SqlConnection(connectString);
conn.Open();
Console.WriteLine("Connection Established");

Leer datos de la base de datos

Necesitamos la clase SqlCommand y SqlDataReader para leer datos de la base de datos. La clase SqlCommand se utiliza para ejecutar el comando en la base de datos.

Ejecutar el comando SELECT produce un Resultset. Este Resultset se puede leer usando la clase SqlDataReader.

Veamos el código a continuación.

SqlCommand cmd;
SqlDataReader dataReader;
string sql = "Select * from Student";
cmd = new SqlCommand(sql, conn);
dataReader = cmd.ExecuteReader();
Console.WriteLine("Data from the Database..");
while (dataReader.Read()) {
  Console.WriteLine(dataReader.GetValue(0) + " || " + dataReader.GetValue(1));
}
dataReader.close();
conn.close();

En este fragmento de código, primero, creamos un objeto SqlCommand y creamos una consulta que necesitamos ejecutar en la base de datos. Luego esta consulta se envía al objeto cmd y al objeto de conexión conn.

Para ejecutar la consulta, utilizamos la función ExecuteReader(), que devuelve un Resultset que contiene los datos adquiridos en la consulta. Este ResultSet se puede leer utilizando el objeto SqlDataReader, que lee los datos del bucle fila por fila.

Al final, debemos cerrar el lector y los objetos de conexión para que puedan liberarse para su uso posterior.

La salida del código anterior será:

Connection Established.
Data from the Database..
BS01 || David
BS02 || John

Tenga en cuenta que hemos utilizado la función ExecuteReader() para ejecutar la consulta Select. Para ejecutar más tipos de consultas, necesitamos diferentes métodos.

Algunos de los lectores de resultados de consultas populares son:

Nombre de la función Descripción
ExecuteReader() Función utilizada para ejecutar consultas que pueden devolver datos en forma tabular.
ExecuteNonQuery() Función para ejecutar consultas DML en la base de datos como insert, update, etc.
ExeuteScalar() Función para consultas que devuelven un único valor como count
Muhammad Husnain avatar Muhammad Husnain avatar

Husnain is a professional Software Engineer and a researcher who loves to learn, build, write, and teach. Having worked various jobs in the IT industry, he especially enjoys finding ways to express complex ideas in simple ways through his content. In his free time, Husnain unwinds by thinking about tech fiction to solve problems around him.

LinkedIn

Artículo relacionado - Csharp SQL