- 2013-08-18 - Licence Fondamentale d'Informatique
mercredi 21 août 2013

Connecte une application C# à SQLSERVER en mode connecté


Créer une application C# et le relier a SQLSERVER en mode connecte de ADO.NET pas simple que ça tous d’abord je tiens de vous explique le mode connecté.


Ce mode permet à un client de se connecter à un serveur de base de données et tant que le client ne fermera pas la connexion, la connexion reste ouverte entre le client t le serveur 

Tout d’abord on crée un nouveau projet C# après on crée une nouvelle base de donne et les table nécessaire a partir du visual studio ou en peut travailler sur une base de donnés existe.

Exemple de création d’une application en mode connecté

Etape 1 création d’une base de donnée a partir de dotnet

Aller vers le menu affichage -> explorateur de serveur une nouvel fenêtre vient de s’ouvrir a gauche 

Clic avec le bouton droit sur connexion de donnée un menu s’affiche contient :

Ajouter une connexion si on veut travaillez sur une base de donnée existe déjà 
Créer une nouvelle base de donne SQLSERVER pour une nouvelle base donnée

Click sur créer une nouvelle base de donne SQLSERVER tapez le nom du serveur et le nom de la base donnée exemple tstado puis ok

Click sur le + de connexion de donnée une nouvelle connexion vient de s’ajouter sous le nom : 
nom du post\\ nom du serveur.nom de la base donnée

Click sur + bouton droit sur table et créer une nouvelle table sous le nom CLIENTS
Contient 4 champs :

IDCLIENT (clé primaire) int
NOM varchar(50)
PRENOM varchar(50)
AGE int



Etape 2 créations d’une application Windows 

Aller vers le menu fichier->nouveau->projet ->visual C#->application Windows
Dans la form désigne ajouter un bouton pour on puisse tester notre application 
Click sur le bouton propriété click sur l’icône d’événement puis double click sur l’événement click


Dans le code de la form ajouter a l’entête :

// pour permettre a l’application clients de se connecter au serveur


using System.Data.SqlClient ; 



Dans la procédure d’événement click tapez le code suivant :

On doit déclarer une variable de type sqlconnection pour établir une connexion avec notre base donne :


SqlConnection cnx;
cnx = new SqlConnection("Data Source=.\\\\sqlexpress;Initial Catalog=tstado;Integrated Security=True;Pooling=False");

//le constructeur de la classe sqlconnection prend comme parametre la chaine de connection

/*
pour recuperer cette chaine suivez les etapes suivants ;
boton droit sur le nom de notre connexion dans l’explorateur de serveur 
proproietes puis puis copier la chaine de connection dans le menu propriete
*/

cnx.Open(); // permettre d’ouvrir la connexion


/*pour pouvoir executer une requete sqlon doit declarer un objet de la class sqlcommand */
SqlCommand cmd; 
cmd = new SqlCommand(); //le constructeur ne contient aucun paramètre

cmd.CommandText = "select * from CLIENTS";// on passe la requte sql

/*on definit le type de la commande commandtype.text pour une requete sql */
cmd.CommandType = CommandType .Text ;



cmd.Connection = cnx; // on affecte la command a une connexion


SqlDataReader r; // permet de lire des enregistrements de données



/* on execute la commande en lecture seul et on 
affecte le resultat vers l'objet r */
r = cmd.ExecuteReader();



/*parcourir l’objet r on lecture la boucle s’arrete a la fin du parcour des enregistrements*/

while (r.Read())
{
/* on affect les different colonne de la table a des variable 
en utilisant le casting car r["nom du champ"] retour un objet de class OBJECT*/


int id = (int)r["IDCLIENT"]; 
string nom = (string)r["NOM"];
int age = (int)r["AGE"];

/*afficher les variable qui contient un enregistrement dans un messagebox*/
MessageBox.Show(nom + " " + id.ToString() + " " + age.ToString());
}

//puis on ferme la connexion 

cnx.Close();


la connexion reste ouvert de puis le code cnx.Open(); jusqu'à le code
cnx.Close();

voici le code complet:

CODE:
 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

using System.Data.SqlClient;
namespace APLCONECTE1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
SqlConnection cnx;
cnx = new SqlConnection("Data Source=.\\\\sqlexpress;Initial Catalog=tstado;Integrated Security=True;Pooling=False");
cnx.Open();
SqlCommand cmd;
cmd = new SqlCommand();
cmd.CommandText = "select * from CLIENTS";
cmd.CommandType = CommandType .Text ;
cmd.Connection = cnx;



SqlDataReader r;
r = cmd.ExecuteReader();

while (r.Read())
{
int id = (int)r["IDCLIENT"];
string nom = (string)r["NOM"];
int age = (int)r["AGE"];

MessageBox.Show(nom + " " + id.ToString() + " " + age.ToString());
}
cnx.Close();
}

 
-