Vous êtes sur la page 1sur 6

24/05/2017

T P ASP
Objectifs :
1- Créer des users pour l’utilisation des forms (sécurité de l’application)
2- Créer un page Master avec ses différents pages de contenus .
3- Créer un Web Service
4- Utilisation des états.(CrystalReport)
5- Exporter les données dans un fichier XML .

On considère la base de données suivant :


Stagiaire (idstg , nom,prenom,datenaiss)
Module(idmod,nom,Masshor)
Note(#idstg,#idmod,note)
Questions:
1- le projet est sécurisé (créer des users dans un web config)
2- Créer une page maitre qui contient le menu suivant :
Ajouter Stagiaire // Ajouter Module // Ajouter Note
Consulter la moyenne d’un stagiaire // Consulter la moyenne de tous les
Stagiaires.
3 - a) Créer un web service qui affiche le nombre des stagiaires réussis
b) Appeler le Web Service.
4- Créer un état qui affiche la moyenne de tous les stagiaires.
6- Créer un bouton Exporter qui permet d’enregistrer les données des
stagiaires dans un fichier XML .

Solution
Etape 1 :
Créer la base de données avec ses différentes tables .
----------------Création de la base et les 3 tables ----------------------
------
create database gestion_Notes
24/05/2017

create table stagiaire(idstg int primary key identity , nom


varchar(30),prenom varchar(30),dateNais date)
create table module(idmat int primary key identity , nomM varchar(20),massh
varchar(20))
create table note(idstg int foreign key references stagiaire(idstg),idmat
int foreign key references module (idmat),note float)
----------------Insértion dans la table Stagiaire -------------------------
---
insert into stagiaire values ('mohammed','Amrani','01/25/1994')
insert into stagiaire values ('Reda','Touhami','05/15/1992')
insert into stagiaire values ('Taha','jalal','01/25/1991')
insert into stagiaire values ('younes','ahmadi','01/25/1990')
insert into stagiaire values ('Nour','Boutayeb','01/25/1982')
insert into stagiaire values ('Saad','Malki','01/25/1985')
insert into stagiaire values ('Youssef','kadiry','06/28/1996')
select * from stagiaire
----------------Insértion dans la table Module ----------------------------
insert into module values('Merise','60 heures')
insert into module values('Ado.Net','70 heures')
insert into module values('Web dynamique','120 heures')
insert into module values('Analyse et conception','90 heures')
select * from module
----------------Insértion dans la table Note ----------------------------
insert into note values( 1,1,17.75)
insert into note values( 1,3,14.20)
insert into note values(2,3,12.45)
insert into note values(2,4,10.14)
insert into note values(3,4,13.75)
insert into note values(3,1,15.20)
insert into note values(4,1,14.66)
insert into note values(4,2,10.66)
insert into note values(7,4,8.55);
insert into note values(7,1,5.30);
insert into note values(7,2,9.55);
insert into note values(7,3,4.55);
select * from note
-------------------Test des requétes -- -------------------------------
select idstg from stagiaire
select AVG(note) as 'Moyenne des notes ' from stagiaire stg , note n
where stg.idstg=n.idstg
select nom , prenom, AVG(note) as 'Moyenne des notes ' from stagiaire
stg , note n where stg.idstg=n.idstg group by nom ,prenom ;
select COUNT(idstg) as ' Nombre des stagiaires réussis' from
stagiaire where idstg in(select note.idstg from note group by idstg
having AVG(note)>=10 );

Etape 2 : Créer un nouveau projet (Application Windows Form)

1- Création des users

 Clique droit sur le projet et ajouter un webform (web Form1)


 Sur le webform1 ajouter un element login (a partir de boite à outils).
24/05/2017

// Code pour button Se connecter


if (FormsAuthentication.Authenticate(Login1.UserName, Login1.Password)
FormsAuthentication.RedirectFromLoginPage(Login1.UserName, false);

 Ensuite créer des users sur Web config (double clique sur
Webconfig)

// Code web config


<system.web>

<authentication mode="Forms">
<forms name=".namesuffix" loginUrl="WebForm1.aspx">
<credentials passwordFormat="Clear">
<user name="ali" password="password1"/>
<user name="ahmed" password="password2"/>
</credentials>
</forms>
</authentication>
<authorization>
<deny users="?"/>
<allow users="toto"/>
</authorization>
<httpHandlers><add verb="GET" path="CrystalImageHandler.aspx"
type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web,
24/05/2017

Version=13.0.2000.0, Culture=neutral,
PublicKeyToken=692fbea5521e1304"/></httpHandlers></system.web>

2- Création de master page


clique droit sur le projet  ajoter Master page
Ensuite Ajouter le menu sur la page maitre et créer
les différents page.

Les trois pages premiers sont crées manuellement.


(Ajouter GridView pour chaque page)

// la page Consulter Moyenne d’un stagiaire


 Sur le contentplaceholder de la page Ajouter
Dropdownlist et un Label
//Code Remplissage de dropdowlist par les numeros
des stagiaires (Form load)
-------Déclaration de connexion et commande------
public static string str = "Data Source=.;Initial Catalog=gestion_Notes;Integrated
Security=True";
public static SqlConnection sc = new SqlConnection(str);
public static SqlCommand cmd = new SqlCommand("", sc);

-------------Remplissage de dropdown list ------------------


protected void Page_Load(object sender, EventArgs e)

{
if (!IsPostBack)
{
DropDownList1.AutoPostBack = true;
sc.Open();
cmd.CommandText = "select idstg from stagiaire ";
DropDownList1.DataSource = cmd.ExecuteReader();
DropDownList1.DataValueField = "idstg";
DropDownList1.DataTextField = "idstg";
DropDownList1.DataBind();
sc.Close();
}
24/05/2017

}
//Code DropDownList
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
sc.Open();
cmd.CommandText="select AVG(note) from stagiaire stg , note n where
stg.idstg=n.idstg and stg.idstg="+DropDownList1.SelectedValue+" ";
Label1.Text = cmd.ExecuteScalar().ToString();
sc.Close();
}

// la page Consulter Moyenne De tous les


Stagiaires
 Ajouter GridView
//Code
public static string str = "Data Source=.;Initial Catalog=gestion_Notes;Integrated
Security=True";
public static SqlConnection sc = new SqlConnection(str);
public static SqlCommand cmd = new SqlCommand("", sc);

protected void Page_Load(object sender, EventArgs e)


{
sc.Open();
cmd.CommandText = "select nom , prenom, AVG(note) as 'Moyenne des notes '
from stagiaire stg , note n where stg.idstg=n.idstg group by nom ,prenom ; ";
GridView1.DataSource = cmd.ExecuteReader();
GridView1.DataBind();
sc.Close();
}
3- a/ Création de web service
//Code

[WebMethod]
public int afficherstg()
{
SqlConnection sc = new SqlConnection(@"Data Source=.;Initial
Catalog=gestion_Notes;Integrated Security=True");
sc.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "select COUNT(idstg) from stagiaire where idstg
in(select note.idstg from note group by idstg having AVG(note)>=10 );";
cmd.Connection = sc;
return (int)cmd.ExecuteScalar();
}
b/ appeler Web Service
pour appeler web service :
créer un webform et ajouter un textbox et un bouton

4- Crétion de l’état(Créer un CrystalReport avec un Crystal


Report Viewer)
5- Enregistré les données dans un fichier XML
 Ajouter un bouton sur la dernier page .
//Code du bouton Exporter
24/05/2017

// exporter
SqlDataAdapter sda = new SqlDataAdapter("select nom , prenom, AVG(note) as
'Moyenne des notes ' from stagiaire stg , note n where stg.idstg=n.idstg group by nom
,prenom ",sc);
DataSet ds = new DataSet();
sda.Fill(ds, "ddd");
ds.WriteXml(MapPath("test2.xml"));