SQL Server Enbref
SQL Server Enbref
SQL Server Enbref
pratique
Introduction
Saliha Yacoub
COLLEGE LIONEL-GROULX
Table des matires
Introduction :.........................................................................................................................3
Installation :...........................................................................................................................4
Connexion et cration de la BD............................................................................................. 10
tape 1 ............................................................................................................................. 10
tape 2 : Crer une nouvelle connexion.............................................................................. 12
tape 3 : Attribuer les rles ............................................................................................... 13
tape 4 Crer une nouvelle base de donnes : ................................................................... 16
O est stocke la base de donnes ? .................................................................................. 20
Cration des tables .............................................................................................................. 23
Types de donnes ............................................................................................................. 23
La proprit Indentity dune table ................................................................................ 24
Utilisation de linterface graphique pour crer des tables. ................................................... 25
Cration des tables avec SQL ............................................................................................. 25
Les procdures stockes ....................................................................................................... 28
Exemple1 : Tous les paramtres sont en IN. ........................................................................ 28
Exemple 2 : Les paramtres en IN avec une sortie (SELECT) ................................................. 29
Exemple 3 : Procdure avec un paramtre en OUTPUT ........................................................ 30
Les fonctions : Fonction qui retourne une table .................................................................. 30
Les fonctions : Fonction qui retourne un scalaire ................................................................ 31
En conclusion pour les procdures et les fonctions. ............................................................. 32
Les procdures stockes et les fonctions : les templates. ..................................................... 33
Application: ADO.Net, les DataSet Typ ................................................................................ 35
Connexion la base de donnes : .......................................................................................... 35
Utiliser linterface graphique pour se connecter, puis App.config............................................. 36
Appels des procdures et fonctions ....................................................................................... 38
Procdures stockes ......................................................................................................... 38
Fonction qui retourne une table......................................................................................... 39
Fonction qui retourne un scalaire....................................................................................... 40
Le DataSet typ.................................................................................................................... 41
Dfinition ............................................................................................................................. 41
Mise en uvre ..................................................................................................................... 42
Exemple de code : ................................................................................................................ 45
1
Saliha Yacoub
Configurer le TableAdapter. .................................................................................................. 51
Sources ................................................................................................................................ 54
2
Saliha Yacoub
Introduction :
Microsoft SQL Server est un Systme de gestion de base de donnes relationnel et
transactionnel dvelopp et commercialis par Microsoft.
Microsoft SQL Server utilise le langage T-SQL (Transact-SQL) pour ses requtes, c'est une
implmentation de SQL qui prend en charge les procdures stockes et les
dclencheurs. La dernire version est SQL Server 2016. La premire ayant appartenu
Microsoft seul est en 1994. (Contrairement Oracle qui sort la premire version en
1979 voir 1977)
3
Saliha Yacoub
Installation :
La documentation qui montre linstallation de SQL Server 2014 avec Management
Studio. Il montre les tapes principales.
Lorsque vous dmarrez linstallation de SQL Server 2014, celui-ci vous demandera si
vous vous voulez faire une mise niveau dune version dj existante (de SQL server
2008-- SQL Server 2012 SQL Server 2014) ou une nouvelle installation autonome. Une
fois que vous avez choisi loption Nouvelle installation, la figure suivante saffiche.
.
videment il faudra accepter le contrat de licence. Par la suite cocher Utiliser Micosoft
Update pour la recherche des mise jour ..
4
Saliha Yacoub
Cliquez sur suivant : la fentre montrant les fonctionnalits installer saffiche.
Vrifier que lensemble des fonctionnalits est coch. (en particulier le moteur de bases
de donnes).
5
Saliha Yacoub
Cliquez sur suivant.
Choisir loption instance nomme de la figure suivante. Si vous avez une version de SQL
Server dj installer ne donner pas le mme nom cette instance.
6
Saliha Yacoub
Cliquez sur suivant. La fentre suivante montre les services ainsi que le mode de
dmarrage. Vrifiez surtout que le moteur de Bases de donnes soit automatique.
7
Saliha Yacoub
Cliquez sur suivant.
8
Saliha Yacoub
Cette opration prend quelques minutes. Soyez patient Vrifiez que tout est OK.
9
Saliha Yacoub
Connexion et cration de la BD
Dmarrer SQL Server Management Studio
10
Saliha Yacoub
Bouton droit sur votre
serveur, puis proprit
Securit
11
Saliha Yacoub
tape 2 : Crer une nouvelle connexion
Sur le bouton droit de votre
12
Saliha Yacoub
Dcocher lutilisateur doit changer le mot de passe.
Vous pouvez dcocher la case Conserver la stratgie des mot de passe. Mais ce
nest pas conseill.
Comme vous navez pas de base de donnes, la connexion utilise la Base de
donnes par dfaut qui master.
Si vous tes administrateur alors vous avez dj ces rles, sinon vous devez les attribuer
votre connexion avant de crer la bd.
Pour crer la base de donnes vous devez avoir au moins le rle sysadmin
Pour donner les droits votre connexion, allez votre connexion, Bouton droit,
proprit puis rle du serveur
13
Saliha Yacoub
Rles Descriptif
bulkadmin Les membres du rle serveur fixe bulkadmin
peuvent excuter l'instruction BULK INSERT
(La tche d'insertion en bloc est le moyen
le plus rapide pour copier de gros volumes
de donnes dans une table ou une vue SQL
Server).
14
Saliha Yacoub
securityadmin Les membres du rle serveur fixe
securityadmin grent les connexions et leurs
proprits. Ils peuvent accorder (GRANT),
refuser (DENY) et rvoquer (REVOKE)
les autorisations de niveau serveur. Ils
peuvent galement accorder (GRANT),
refuser (DENY) et rvoquer (REVOKE) les
autorisations de niveau base de donnes.
En outre, ils peuvent redfinir les mots de
passe des connexions SQL Server.
Vous pouvez vous dconnecter du serveur et vous reconnecter avec votre nouvelle
connexion (SQL Server) comme suit.
15
Saliha Yacoub
tape 4 Crer une nouvelle base de donnes :
Aprs vous tre connect avec votre nouvelle connexion ayant au moins le droit
sysadmin, placez-vous longlet base de donnes, puis nouvelle base de donnes
Avant de cliquer sur OK, cliquer sur propritaire, puis sur le bouton parcourir. Cochez les
utilisateurs (les connexions que vous voulez quils soient propritaires, puis OK, puis OK
16
Saliha Yacoub
Aprs la cration de la base de donnes, nous allons faire en sorte que le login pointe
directement sur la nouvelle base de donnes
Sous longlet Scurit, droulez les connexions. Reprerez la vtre. Puis bouton droit de
la souris et Proprits.
17
Saliha Yacoub
Toutes les connexions que nous venons de crer appartiennent un lutilisateur par
dfaut dbo
Une connexion est lie la notion de connexion avec mot de passe (stock dans la table
unique master syslogins) qui permet davoir accs au serveur de base de donnes.
Un utilisateur d'une base de donnes est li une connexion. Un utilisateur est associ
une ou plusieurs bases de donnes. Nous pouvons avoir plusieurs utilisateurs pouvant
se partager la mme connexion. Stock dans les diverses tables sysusers (une dans
chaque base)
Nous pouvons crer galement une connexion en mme temps que lusager associ
cette connexion.
On utilise les mmes tapes que pour crer une connexion. Cette fois la connexion est
mappe avec un utilisateur. La connexion sappelle user1 le nom de lusager aussi.
18
Saliha Yacoub
Rles Description
db_accessadmin Les membres peuvent ajouter ou supprimer
l'accs des connexions Windows, des
groupes Windows et des connexions SQL
Server.
19
Saliha Yacoub
db_datawriter Les membres du rle de base de donnes
fixe db_datawriter peuvent ajouter,
supprimer et modifier des donnes dans
toutes les tables utilisateur.
Les donnes sont stockes dans un fichier MDF, toutes les transactions, les
modifications de la base de donnes SQL Server effectues par chaque transaction sont
stockes dans un fichier LDF
PatocheBd.mdf et PatocheBd_log.ldf
20
Saliha Yacoub
Ce sont ces deux fichiers qui vous permettent de faire un Backup complet de votre base
de donnes.
Bouton droit sur Bases de donnes, puis Joindre. Vous aurez la fentre suivante.
Puis cliquez sur le bouton Ajouter et choisir la BD que vous voulez joindre.
21
Saliha Yacoub
Attention :
Lorsque vous essayez de joindre une Base de donnes dj jointe, cela provoquera une
erreur.
Il faut que vos fichiers soient dans le bon dossier.
22
Saliha Yacoub
Cration des tables
Types de donnes
Numerics Exact
Type partir de
bigint -9.223.372.036.854.775.808 9.223.372.036.854.775.807
int -2147483648 2147483647
smallint -32.768 32.767
tinyint 0 255
bit 0 1
dcimale -10 ^ 38 1 10 ^ 38 -1
numrique -10 ^ 38 1 10 ^ 38 -1
money -922,337,203,685,477.5808 +922,337,203,685,477.5807
SMALLMONEY -214,748.3648 +214,748.3647
Numriques et dcimales sont fixes de prcision et l'chelle des types de donnes et
sont fonctionnellement quivalents.
Numerics approximatif
Type partir de
float 1,79 E + 308- 1,79 E + 308
reel -3.40E + 38 3.40E + 38
datetime et SMALLDATETIME
Type partir de
datetime (3,33 exactitude millisecondes) 1 janvier 1753 31 dc 9999
SMALLDATETIME (prcision de 1 minute) 1 janvier 1900 6 juin 2079
Chanes de caractres
Type Description
De longueur fixe de caractres Unicode donnes non avec une longueur
char
maximum de 8000 caractres.
De longueur variable Unicode donnes non avec un maximum de 8000
varchar
caractres.
23
Saliha Yacoub
varchar De longueur variable Unicode donnes non d'une longueur maximale de
(max) 231 caractres (SQL Server 2005 uniquement).
De longueur variable Unicode donnes non avec une longueur maximale de
text
2147483647 caractres.
Type Description
la longueur de donnes Unicode-fixe avec une longueur maximale de 4000
nchar
caractres.
la longueur de donnes Unicode et variable, avec une longueur maximum
nvarchar
de 4000 caractres.
nvarchar longueur Unicode donnes variables avec une longueur maximale de
(max) 230 caractres (SQL Server 2005 uniquement).
la longueur de donnes Unicode et variable, avec une longueur maximale
ntext
de 1073741823 caractres.
Binary Cordes
Type Description
De longueur fixe des donnes binaires d'une longueur maximale de 8000
binaire
octets.
De longueur variable des donnes binaires d'une longueur maximale de
varbinary
8000 octets.
varbinary De longueur variable des donnes binaires d'une longueur maximale de
(max) 231 octets (SQL Server 2005 uniquement).
De longueur variable des donnes binaires d'une longueur maximale de
image
2147483647 octets.
24
Saliha Yacoub
Lorsque vous utilisez la proprit IDENTITY pour dfinir une colonne d'identification,
tenez compte des lments suivants :
Exemple :
La numrotation automatique commence 10 et elle est pas de 2.
25
Saliha Yacoub
Exemple : Dans lexemple qui suit remarquez la colonne identity et le type money
Remarque1 : Avec SQL server on peut dfinir un seul INSERT INTO et donner la lise des
valeurs.
Pour excuter un commit aprs une opration DML, il faut mettre lopration entre
begin transaction
oprations DML
commit;
26
Saliha Yacoub
Exemple
begin transaction
insert into etudiants (nom, prenom,salaire,codep) values
('Patoche','Alain',12.33,'tge');
insert into etudiants (nom, prenom,salaire,codep) values
('Gavroche','Miserable',1.33,'inf');
insert into etudiants (nom, prenom,salaire,codep) values
('Bien','Henry',18.33,'inf');
insert into etudiants (nom, prenom,salaire,codep) values
('Leriche','Alain',40.00,'inf');
commit;
En gnral, lensemble des contraintes que nous avons vues avec ORACLE se dfinissent
de la mme faon avec SQL Server.
27
Saliha Yacoub
Les procdures stockes
Les procdures stockes et les fonctions font partie du langage Transact-SQL (quivalent
de PL/SQL dORACLE). Transact-SQL est lorigine une proprit de Sybase.(aujourdhui
Transact-SQL est propritaire de Microsoft aussi. Ce dernier a pass des accords avec le
concurrent direct d Oracle de lpoque vers les annes 1989)
execute insertionEtudiants
@pnom ='Lenouveau',
@pprenom ='lenouveau',
@psal=22.5,
@pcodep ='sim';
28
Saliha Yacoub
Exemple 2 : Les paramtres en IN avec une sortie (SELECT)
Execution :
execute lister
@pcodep='inf';
Exemple 2
Execution
execute ChercherNom
@pnom='Le';
29
Saliha Yacoub
Exemple 3 : Procdure avec un paramtre en OUTPUT
create procedure ChercherNom2
(
@pnum int,
@pnom varchar(20) out
)
AS
begin
Execution
30
Saliha Yacoub
Les fonctions : Fonction qui retourne un scalaire
Cas dune fonction sans paramtres :
Appel de la fonction :
select dbo.compter();
drop function compter; permet de supprimer une fonction
select dbo.compteretudiants('inf');
31
Saliha Yacoub
En conclusion pour les procdures et les fonctions.
Pour les procdures et les fonctions les paramtres sont prcds de @
Le type IN est par dfaut.
Lorsque le paramtre est en OUT ou OUTPUT, il faudra lindiquer clairement.
Les procdures et sont termins par GO. Il nest cependant pas obligatoire.
Les fonctions peuvent retourner des tables. Elles ne comportent les mots
rservs BEGIN et END
Pour executer une procdure il faut utiliser execute ou exec
Pour executer une fonction il faut utiliser select nomuser.nomfonction
(valeur paramtres)
lexcution des procdures, laffectation des valeurs aux paramtres se fait
avec = pour les int et la fonction set pour les types text.
Vos fonctions et procdures se trouvent Programmabilit de la BD
32
Saliha Yacoub
Les procdures stockes et les fonctions : les templates.
Voici le code gnr par SQL Server lorsque vous essayer de crer une procdure ou une
fonction
================================================
-- Template generated from Template Explorer using:
-- Create Procedure (New Menu).SQL
--
-- Use the Specify Values for Template Parameters
-- command (Ctrl-Shift-M) to fill in the parameter
-- values below.
--
-- This block of comments will not be included in
-- the definition of the procedure.
-- ================================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE <Procedure_Name, sysname, ProcedureName>
-- Add the parameters for the stored procedure here
<@Param1, sysname, @p1> <Datatype_For_Param1, , int> =
<Default_Value_For_Param1, , 0>,
<@Param2, sysname, @p2> <Datatype_For_Param2, , int> =
<Default_Value_For_Param2, , 0>
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
33
Saliha Yacoub
Template function TABLE
-- ================================================
-- Template generated from Template Explorer using:
-- Create Inline Function (New Menu).SQL
--
-- Use the Specify Values for Template Parameters
-- command (Ctrl-Shift-M) to fill in the parameter
-- values below.
--
-- This block of comments will not be included in
-- the definition of the function.
-- ================================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION <Inline_Function_Name, sysname, FunctionName>
(
-- Add the parameters for the function here
<@param1, sysname, @p1> <Data_Type_For_Param1, , int>,
<@param2, sysname, @p2> <Data_Type_For_Param2, , char>
)
RETURNS TABLE
AS
RETURN
(
-- Add the SELECT statement with parameter references here
SELECT 0
)
GO
34
Saliha Yacoub
Application: ADO.Net
Le fournisseur de donnes SqlClient fait partie intgrante de .NET Framework. Pas
besoin dinstallation supplmentaire (comme ODAC ou ODP.NET) si vous voulez accder
votre base de donnes SQL Server par C#, VB.net ou ASP.Net.
Ce quil faut savoir:
On utilise des classes de nom diffrent quavec Oracle, mais ces classes
ont le mme rle
"Data source =votreserveur; Intial Catalog = nomBd; User Id = user; Passsword =pass
Exemple :
sqlconnect.ConnectionString = chaine;
sqlconnect.Open();
35
Saliha Yacoub
Utiliser linterface graphique pour se connecter, puis App.config
On peut aussi utiliser linterface graphique pour obtenir la chaine de connexion et faire
rfrence cette chaine de connexion
Dans Visual Studio, bouton droit sur Connexions de donnes, puis ajouter une
connexion.
Entrer les informations de connexion votre serveur : Cliquez sur le bouton Modifier
pour chercher la source de donnes adquate (SqlClient de SQL Server).
Maintenant la connexion est tablie, comment rcuprer la c haine de connexion pour notre
projet C# ?. Rien de complique
37
Saliha Yacoub
Pour faire rfrence cette chaine de connexion la ConfigurationManager avec la
proprit ConnectionStrings (Obtient les donnes ConnectionStringsSection pour la
configuration par dfaut de l'application actuelle. Vous aurez besoin alors de rajouter la
rfrence system.configuration, puis lespace de nom System.Configuration (using
System.Configuration)
Procdures stockes
try {
cmliste.Connection = sqlconnect;
cmliste.CommandType = CommandType.StoredProcedure;
cmliste.CommandText = "lister";
SqlParameter pcode = new SqlParameter("@pcodep", SqlDbType.Char, 4);
pcode.Direction = ParameterDirection.Input;
pcode.Value = "inf";
cmliste.Parameters.Add(pcode);
// remplire le DataSet
SqlDataAdapter adapter = new SqlDataAdapter(cmliste);
adapter.Fill(mondataSet, "listeEtudiants");
//faire un bindingsource . La datagriView s'apelle dgvListe
BindingSource maSource = new BindingSource(mondataSet,
"listeEtudiants");
gvListe.DataSource = maSource;
}
catch (Exception ex1)
{
MessageBox.Show(ex1.Message.ToString());
}
}
38
Saliha Yacoub
Les objets SqlCommand, SqlConnection .. sont dclars comme suitL
SqlConnection sqlconnect = new SqlConnection();
SqlCommand cmajoutproc = new SqlCommand();
SqlCommand cmliste = new SqlCommand();
SqlCommand cm = new SqlCommand();
SqlCommand cmfuntable = new SqlCommand();
DataSet mondataSet = new DataSet();
Et la procdure tant :
39
Saliha Yacoub
La fonction Table tant la suivante:
try
{
cm.Connection = sqlconnect;
cm.CommandType = CommandType.StoredProcedure;
cm.CommandText = "Compter";
SqlParameter tot = new SqlParameter("@tot", SqlDbType.Int);
tot.Direction = ParameterDirection.ReturnValue;
cm.Parameters.Add(tot);
cm.ExecuteScalar();
label1.Text = tot.Value.ToString();
}
catch (Exception ex3)
{
MessageBox.Show(ex3.Message.ToString());
}
}
40
Saliha Yacoub
Le DataSet typ
Dfinition
Un DataSet typ est une classe drive d'un DataSet. En tant que tel, il hrite de
l'ensemble des mthodes, vnements et proprits d'un DataSet. En outre, un DataSet
typ fournit des mthodes, vnements et proprits fortement typs. Cela signifie que
vous pouvez accder des tables et des colonnes par leur nom au lieu d'utiliser les
mthodes associes des collections. Un DataSet typ permet non seulement
d'amliorer la lisibilit du code, mais aussi d'obtenir de l'diteur de code Visual
Studio .NET qu'il complte automatiquement les lignes mesure que vous les tapez.
Les DataSet typ rduisent considrablement la quantit de code pour leur exploitation.
Ils travaillent aussi en mode dconnect.
Outre les fonctionnalits standards d'un DataAdapter, les TableAdapters fournissent des
mthodes types supplmentaires qui encapsulent des requtes partageant un schma
commun avec le DataTable typ associ. En d'autres termes, vous pouvez possder
autant de requtes que vous le souhaitez sur un TableAdapter aussi longtemps qu'elles
retournent des donnes respectant le mme schma.
Les TableAdapters utilisent des commandes de donnes pour lire et crire dans la base
de donnes. La requte Fill (principale) initiale du TableAdapter est utilise comme base
pour crer le schma de la table de donnes associe, ainsi que les commandes
InsertCommand, UpdateCommand et DeleteCommand associes la mthode
TableAdapter.Update. Cela signifie que l'appel la mthode Update d'un TableAdapter
excute les instructions cres lors de la configuration originale du TableAdapter, et
aucune des requtes supplmentaires ajoutes avec l'Assistant Configuration de
requtes TableAdapter.
Lorsque vous utilisez un TableAdapter, il effectue avec les commandes les mmes
oprations que vous pourriez effectuer vous-mme. Par exemple, lorsque vous appelez
la mthode Fill de l'adaptateur, celui-ci excute la commande de donnes de sa
proprit SelectCommand et utilise un lecteur de donnes (par exemple SqlDataReader)
41
Saliha Yacoub
pour charger le jeu de rsultats insr dans la table de donnes. De mme, lorsque vous
appelez la mthode Update de l'adaptateur, il excute la commande approprie (celle
des proprits UpdateCommand, InsertCommand et DeleteCommand) pour chaque
enregistrement modifi
Mise en uvre
Une fois votre projet Visual Studio cre, vous pouvez lui ajouter un DataSet Typ de la
faon suivante :
Choisissez DataSet dans les lments Visual C#, puis donner un nom significatif puis
ajouter
42
Saliha Yacoub
Lorsque vous aurez cliqu sur ajouter, vous aurez alors, la figure suivante qui va vous
permettre dajouter des tables votre DataSet.
43
Saliha Yacoub
Remarquez aussi que dans lexplorateur de solution, vous avez les informations de votre
DataSet
44
Saliha Yacoub
On va sintresser aux tables de notre DataSet (DataSetType1.xsd)
1. Les tables lies dans la base de donnes sont lies sont lies dans le DataSet.
2. Les tables ont leurs propre DataAdapter. Ce sont des TableAdapter.
a. EmployesTableAdapter pour la table Employes
b. etudiantsTableAdapter pour la table etudiants
c. programmesTableAdapter pour la table programmes
3. etudiants et programmes sont remplies par la methode Fill avec un SELECT.
4. Employes est remplie par une procdure stocke dont le paramtre est @code.
5. Surtout, il ne faut pas perdre de vue quun DataSet Typ est avant tout un
DataSet. Ce qui veut dire quon utilise la mthode Fill dun DataAdapter pour le
remplir et la mthode Update pour la mise jour du DataSet et de la base de
donnes. Pour les dtails concernant le fonctionnement dun DataSet voir
http://salihayacoub.com/420Ked/Semaine%209/2014ADO.pdf
Toutes les mthodes et proprits dun DataSet sapplique un DataSet Typ.
Exemple de code :
La figure suivante montre lutilisation de DataSet Typ.
Les boutons prcds de la lettre T utilise les TableAdapter.
Nous avons exemple de procdure appel par un TabeleAdapter.
Nous avons un DataAdapter (tel que nous lavons dj vu en S3, et S4). Dans cet
exemple le DataAdapter travaille en mode connct.
Dans tout lexemple, on utilise un DataSet Typ,
45
Saliha Yacoub
Voici la section de dclaration :
46
Saliha Yacoub
// appel dune procdure stocke avec un SqlDataAdapter et la
mthode Fill()
// nous avons dj vu ce code avec Oracle
private void afficher_Click(object sender, EventArgs e)
{
try
{
cmliste.Connection = maConnexion;
cmliste.CommandType = CommandType.StoredProcedure;
cmliste.CommandText = "lister";
SqlParameter pcode = new SqlParameter("@pcodep", SqlDbType.Char, 4);
pcode.Direction = ParameterDirection.Input;
pcode.Value = "inf";
cmliste.Parameters.Add(pcode);
// on rempli le DataSet
SqlDataAdapter adapter = new SqlDataAdapter(cmliste);
adapter.Fill(ds, "etudiants");
// puisque mon DataSet est typ alors je peux faire ceci.
string nomp = ds.etudiants[2].nom;
textNom.Text = nomp;
// on fait un BindingSource sur le DatagridView
BindingSource maSource = new BindingSource(ds, "etudiants");
dgvEtudiants.DataSource = maSource;
}
47
Saliha Yacoub
private void ajouter_Click(object sender, EventArgs e)
{
SqlCommand cmd = new SqlCommand("insertionEtudiants", maConnexion);
cmd.CommandText = "insertionEtudiants";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(pNom);
cmd.Parameters.Add(pPrn);
cmd.Parameters.Add(pSal);
cmd.Parameters.Add(pCode);
cmd.ExecuteNonQuery();
}
48
Saliha Yacoub
private void sauvegarder_Click(object sender, EventArgs e)
{
try
{
//modification
cmmodifier.Connection = maConnexion;
cmmodifier.CommandType = CommandType.StoredProcedure;
cmmodifier.CommandText = "modifetudiant";
adapter.UpdateCommand = cmmodifier;
cmmodifier.Parameters.Add("@pno",SqlDbType.Int, 3, "numad").Direction =
ParameterDirection.Input;
cmmodifier.Parameters.Add("@pcode", SqlDbType.Char, 3, "codep").Direction
= ParameterDirection.Input;
//insertiom
cmajouter.Connection = maConnexion;
cmajouter.CommandType = CommandType.StoredProcedure;
cmajouter.CommandText = "insertionEtudiants";
adapter.InsertCommand = cmajouter;
cmajouter.Parameters.Add("@pnom", SqlDbType.VarChar, 30, "nom").Direction =
ParameterDirection.Input;
cmajouter.Parameters.Add("@pprenom", SqlDbType.VarChar, 30,
"prenom").Direction = ParameterDirection.Input;
ajouter.Parameters.Add("@psal", SqlDbType.Decimal, 3, "salaire").Direction
= ParameterDirection.Input;
cmajouter.Parameters.Add("@pcodep", SqlDbType.Char, 3,
"codep").Direction = ParameterDirection.Input;
//suppresion
cmsupprimer.Connection = maConnexion;
cmsupprimer.CommandType = CommandType.StoredProcedure;
cmsupprimer.CommandText = "deleteetudiant";
adapter.DeleteCommand = cmsupprimer;
cmsupprimer.Parameters.Add("@pno", SqlDbType.Int, 3,
"numad").Direction = ParameterDirection.Input;
//sauvegarde le DataSet et la BD
adapter.Update(ds.etudiants);
}
49
Saliha Yacoub
Dans ce qui suit, on utilise un DataAdapter sans connexion (car il est
configurer pour appeler une procedure).
Tout le code qui suit, vous navez pas besoin de connexion. Ce nest
pas lidal et ce nest pas conseill. Il faut cependat savoir que
est faisable.
dataGridView1.DataSource = laSource;
}
50
Saliha Yacoub
videmment nous avons conomis beaucoup de code, mais si la BD est multi-usagers
et que les donnes doivent tre traites en temps rel alors cette faon de mettre jour
la BD en mode non connect est dconseill.
Les DataSet Typs sappliquent aussi Oracle. (Et les autres SGBD)
Configurer le TableAdapter.
Pour faire un Fill sur le DataSet, on utilise un SELECT ou une procdure Stocke.
Pour une requte, on garde les informations par dfaut ou on crit une nouvelle requte.
51
Saliha Yacoub
Choisir la procdure stocke que vous voulez
52
Saliha Yacoub
53
Saliha Yacoub
Sources
Cours de Denis Brunet : Premire Connexion au Serveur
http://sqlserver.developpez.com
https://msdn.microsoft.com/en-us/library/ms186775.aspx
https://msdn.microsoft.com/fr-ca/library/ms187752.aspx
https://msdn.microsoft.com/fr-fr/library/esbykkzb(v=vs.110).aspx
https://msdn.microsoft.com/fr-ca/library/bz9tthwx.aspx
54
Saliha Yacoub