Exécuter une simple requête SELECT en C# .Net

Logo Microsoft .NetPré-requis 1 : Avant tout je préfère le dire toute suite ce billet est une note personnel …
Pré-requis 2 : Non développeur, n’allez pas plus loin 😉
Depuis hier j’ai une petite application Console en dotnet à développer et comme ça fait super longtemps que je n’ai pas fait de développement .Net je viens de réaliser que j’avais presque tout oublié.
Objet de ce billet : comment faire une simple requête SELECT sur une base de données SQL Serveur en C# .Net.

Il existe des milliards de techniques pour interroger une base de données en .Net avec ADO.Net le problème c’est que la majorité de ces techniques sont, je trouve, bien trop compliqués pour de simples applications.

Alors voilà un petit script tout simple permettant d’exécuter une requête SELECT sur une table :

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;

namespace RequeteSelectSimple
{
class MainClass
{
static SqlConnection myConnection;
static SqlCommand myCommand;
static string myConnectionString;

public static void Main(string[] args)
{
//Chaine de connexion permettant de se connecter la base :
myConnectionString = « user id=Login-Base-Donnees;password=PassWord-Base-De-Donne;initial catalog=Nom-De-La-Base;data source=Adresse-du-serveur-de-la-Base-de-Donnees;Connect Timeout=10″;
//Requête SQL :
string strRequete = « SELECT nom FROM tbl_contacts » ;
//variable locale qui permettra de récuppérer les valeurs de la table
string varNom;
//Utilisation du try .. catch permettant de fermer la connexion même en cas de plantage
try{
//Connexion à la base de donnée
myConnection = new SqlConnection(myConnectionString);
myConnection.Open();
//Execution de la requête
myCommand = new SqlCommand(strRequete,myConnection);
//Lecture des enregistrements à l’aide d’un SqlDataReader
SqlDataReader mySqDataReader = myCommand.ExecuteReader();
while (mySqDataReader.Read()){
//On teste que le résultat n’est pas NULL afin d’éviter un plantage on moment du cast
if(mySqDataReader[« nom »]!= System.DBNull.Value){
//récuppère le nom à l’aide d’un cast
varNom = (string)mySqDataReader[« nom »];
}else{
varNom = «  »;
}
//On affiche le champ dans la console
Console.WriteLine(varNom);
}
}catch(Exception eMsg1){
//En cas d’erreur on affiche le message d’erreur
Console.WriteLine(« Erreur durant l’execution de la requete : « +eMsg1.Message);
}finally{
//Quoiqu’il arrive on ferme proprement la connexion à la base
myConnection.Close();
}
}
}
}

Voilà fin de la note personnelle …
Si dans 6 mois j’ai de nouveau de nouveau besoin d’exécuter une simple requête SELECT en Csharp dotnet je saurai où chercher 😉

Ah et j’oubliais : si certains codeurs passent par là, vos critiques constructives sur ce bout de code seront les bienvenues (Mauricio tu es là ? ;)) …

  • Samoht

    Error // Error // Error //

     » le cerveau a récupéré une erreur critique. Veuillez redémarrez votre cerveau  »

    Error // Error // Error //

  • Arthur

    Le dot net …. mdr quel malheur !
    Cela di les select en php en utilisant une requête préparée avec iterateur ont à peut près la même tête ….
    Et je ne crois pas qu’il y ai plus simple que ce que tu as fait, car j’ai appris à les faire comme ça moi aussi.
    @toute et longue vie a PHP/Ruby/Python :)

  • jo

    Je me demander si on pouvait rajouter une condition (un WHERE) a ton script plus précisément a ta requête SQL ? car moi je l’ai fait et il me trouve une erreur au moment d’exécuter la commande, si quelqu’un aurait une explication et une solution. Il serait le bien venu 😉

  • http://www.h2-blog.com Benjamin

    @Jo > normalement ça marche sans souci avec un WHERE … le problème vient peut être du code.. tu l’as posté quelque part ?

  • jo

    J’avais oublier les ‘ ‘. J’ai parler un peu trop vite.