Requête SELECT pour base de données en C#

Muhammad Husnain 12 octobre 2023
  1. Qu’est-ce qu’une base de données
  2. Connexion à la base de données en C#
Requête SELECT pour base de données en C#

Cet article explique comment configurer une connexion à une base de données avec l’application C# et récupérer des données à partir de différentes tables à l’aide de la requête SELECT de la base de données.

Qu’est-ce qu’une base de données

Une base de données n’est pas simplement une collection de données organisées sous forme de tableau, mais bien plus encore. Il représente les données dans une structure organisée avec des conventions de dénomination appropriées et des relations avec d’autres tables.

Le système de gestion de base de données fournit également un langage pour interagir avec la base de données (par exemple, SQL), qui est très proche de la langue anglaise et donc très facilement compréhensible par l’utilisateur. Il nous fournit également des schémas de sécurité et d’optimisation des données pour augmenter les performances des opérations de données.

Connexion à la base de données en C#

Habituellement, les programmeurs utilisent des bases de données pour stocker les données de leurs applications. Le langage C# fournit une programmation de base de données avec une base de données Oracle et une base de données Microsoft SQL Server.

C# peut également fonctionner avec de nombreuses autres bases de données, mais celles ci-dessus sont les plus courantes et les plus utilisées. Quelle que soit votre base de données, la logique derrière chaque base de données est à peu près la même.

Cet article utilisera la base de données SQL Server pour effectuer des opérations. Le namespace requis pour les opérations de base de données est System.data.SqlClient.

Il contient toutes les classes qui seront nécessaires lors de la connexion à la base de données et des opérations.

Créer une base de données dans SQL Server

La première étape consiste à créer une base de données avec laquelle vous devez interagir dans SQL Server. Cette base de données est créée à l’aide de la requête suivante.

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');

Après avoir exécuté ces requêtes, une base de données ayant la table Student sera créée et contiendra 2 lignes.

Faire une connexion avec la base de données en C#

Pour interagir avec une base de données, vous avez besoin de certains paramètres. Ces paramètres sont combinés pour former une chaîne de connexion.

  1. Nom de la base de données - Vous devez fournir le nom de la base de données à partir de laquelle vous devez lire les données. Il est recommandé d’utiliser une seule base de données à la fois.
  2. Informations d’identification de la base de données - Il y a toujours un nom d’utilisateur et un mot de passe pour interagir avec une base de données, vous devez donc donner ce nom d’utilisateur et ce mot de passe autorisés.
  3. Certains paramètres facultatifs - Vous pouvez également fournir des paramètres facultatifs. Par exemple, vous pouvez définir une valeur de délai d’attente selon laquelle la connexion doit être fermée si la base de données reste inactive pendant une certaine période.

Regardons l’exemple de code où nous allons effectuer une connexion avec la base de données. Supposons que le nom d’utilisateur de la base de données soit usr et que le mot de passe soit 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");

Lire les données de la base de données

Nous avons besoin de la classe SqlCommand et SqlDataReader pour lire les données de la base de données. La classe SqlCommand est utilisée pour exécuter la commande sur la base de données.

L’exécution de la commande Select produit un Resultset. Ce Resultset peut être lu à l’aide de la classe SqlDataReader.

Regardons le code ci-dessous.

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();

Dans cet extrait de code, nous avons d’abord créé un objet SqlCommand et créé une requête que nous devons exécuter sur la base de données. Puis cette requête est envoyée à l’objet cmd et à l’objet de connexion conn.

Pour exécuter la requête, on utilise la fonction ExecuteReader(), qui retourne un Resultset contenant les données acquises dans la requête. Ce Resultset peut être lu à l’aide de l’objet SqlDataReader qui lit les données de la boucle ligne par ligne.

En fin de compte, nous devons fermer les objets lecteur et connexion afin qu’ils puissent être libérés pour une utilisation ultérieure.

La sortie du code ci-dessus sera :

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

Notez que nous avons utilisé la fonction ExecuteReader() pour exécuter la requête Select. Pour exécuter plus de types de requêtes, nous avons besoin de différentes méthodes.

Certains des lecteurs de résultats de requête populaires sont :

Nom de la fonction La description
ExecuteReader() Fonction utilisée pour exécuter des requêtes pouvant renvoyer des données sous forme de tableau.
ExecuteNonQuery() Fonction d’exécution de requêtes DML dans la base de données telles que insert, update etc.
ExeuteScalar() Fonction pour les requêtes qui renvoient une seule valeur telle que 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

Article connexe - Csharp SQL