Imports System
Imports System.Data.SqlClient
Imports System.IO
Public Class WebForm6
Inherits System.Web.UI.Page
#Region " Code généré par le Concepteur Web Form "
'Cet appel est requis par le Concepteur Web Form.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
Protected WithEvents form1 As System.Web.UI.HtmlControls.HtmlForm
Protected WithEvents Button1 As System.Web.UI.WebControls.Button
Protected WithEvents Button2 As System.Web.UI.WebControls.Button
Protected WithEvents val_a_ajouter As System.Web.UI.WebControls.TextBox
Protected WithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid
'REMARQUE : la déclaration d'espace réservé suivante est requise par le Concepteur Web Form.
'Ne pas supprimer ou déplacer.
Private designerPlaceholderDeclaration As System.Object
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN : cet appel de méthode est requis par le Concepteur Web Form
'Ne le modifiez pas en utilisant l'éditeur de code.
InitializeComponent()
End Sub
#End Region
'cette fonction permet de rafraichir le tableau
Sub charger_grille()
'chaine de connexion a la base
Dim strConnection As String = Global.loginbase
'definition de la requete
Dim strRequete As String = "SELECT * FROM MANDAT"
'creation de la connection
Dim connection As New SqlConnection(strConnection)
'creation de la requete
Dim requete As New SqlCommand(strRequete, connection)
'ouverture de la connection
connection.Open()
'execution de la requete et fermeture de celle ci a quand l'objet datareader se ferme
DataGrid1.DataSource = requete.ExecuteReader(CommandBehavior.CloseConnection)
'lie le controle a la source de données
DataGrid1.VirtualItemCount = DataGrid1.Items.Count
DataGrid1.DataBind()
'fermeture de la connection par sécurité
connection.Close()
End Sub
'fonction qui se lance au chargement de la page
'on en profite pour raffraichir l'ecran
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'si la page n'est pas en chargement, ni en reponse a une publication du client
',ni en reponse a une premiere demande d'acces
If (Not Page.IsPostBack) Then
'alors on raffraichit le tableau
charger_grille()
End If
End Sub
'fonction qui se lance quand on clique sur un bouton modifier du tableau
Sub DataGrid1EditHandler(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
'on edite la ligne du tableau qui doit être modifiée
DataGrid1.EditItemIndex = e.Item.ItemIndex
'on recharge le tableau
charger_grille()
End Sub
'fonction qui se lance quand on clique sur un bouton annuler du tableau
Sub DataGrid1CancelHandler(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
'dans ce cas, si on clique sur annule, on ne doit plus etre en edition!
DataGrid1.EditItemIndex = -1
'on recharge le tableau
charger_grille()
End Sub
'fonction qui affiche un message d'avertissement
Public Sub ShowAlert(ByVal Message As String)
Dim MyAlertLabel As New Label
MyAlertLabel.Text = "<script language='vbscript'>" & _
vbNewLine & "Alert(" & """" & Message & """" & ")" & _
vbNewLine & "</script>"
Page.Controls.Add(MyAlertLabel)
End Sub
'fonction qui transorme une chaine pour que si elle contient une quote
', elle soit bien gérée par la requete sql
'le principe est de tripler toutes les quotes rencontrées
Public Function DoubleApost(ByVal chaine)
Dim i
Dim modif
'on parcours la chaine
For i = 1 To Len(chaine)
'si on trouve une quote
If Mid(chaine, i, 1) = "'" Then
'on rajoute deux quotes
modif = modif & "''"
Else
'sinon on rajoute le caractere
modif = modif & Mid(chaine, i, 1)
End If
Next
'on retourne la chaine modifiee
DoubleApost = modif
End Function
'fonction appelée quand on rajoute un enregistrement
Sub btn_command(ByVal Sender As Object, ByVal e As CommandEventArgs)
'on recupere la valeur a ajouter
Dim valeur As String = val_a_ajouter.Text
'on transorme cette chaine en chaine compatible sql
valeur = DoubleApost(valeur)
'chaine de connexion a la base
Dim strConnection As String = Global.loginbase
'definition de la requete
Dim strRequete As String = "INSERT INTO MANDAT(INTITULE_MANDAT) VALUES('" + valeur + "')"
'creation de la connection
Dim connection As New SqlConnection(strConnection)
'creation de la requete
Dim requete As New SqlCommand(strRequete, connection)
'ouverture de la connection
connection.Open()
Try
'on essaye d'effectuer la requete
requete.ExecuteNonQuery()
Catch
'si ca ne marche pas, cela signifie que l'enregistrement existe deja, dans ce cas message d'erreur
ShowAlert("enregistrement déjà existant, insertion refusée")
End Try
'fermeture de la connection
connection.Close()
'raffraichissement du tableau
charger_grille()
End Sub
'mise a jour d'un enregistrement
Sub DataGrid1UpdateHandler(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
'recuperation de l'identifiant
Dim idmandat As String = e.Item.Cells(0).Text
'recuperation de sa valeur
Dim intitule As TextBox = e.Item.Cells(1).Controls(0)
'creation de la requete en validant les chaines
Dim strRequete As String = "UPDATE MANDAT SET INTITULE_MANDAT = '" + DoubleApost(intitule.Text) + "' WHERE NUM_MANDAT=" + idmandat
'chaine de connexion a la base
Dim strConnection As String = Global.loginbase
'creation de la connection
Dim connection As New SqlConnection(strConnection)
'creation de la requete
Dim requete As New SqlCommand(strRequete, connection)
'ouverture de la connection
connection.Open()
Try
'on essaye d'effectuer la requete
requete.ExecuteNonQuery()
Catch
'si ca ne marche pas, cela signifie que l'enregistrement existe deja, dans ce cas message d'erreur
ShowAlert("enregistrement déjà existant, insertion refusée")
End Try
'fermeture de la connection
connection.Close()
'on annule le mode d'edition
DataGrid1.EditItemIndex = -1
'raffraichissement du tableau
charger_grille()
End Sub
'pour trier par ordre alphabétique les enregistrements selon la colonne selectionnée
Sub DataGrid1EventHandler(ByVal sender As Object, ByVal e As DataGridSortCommandEventArgs)
'creation de la requete avec le tri
Dim strRequete As String = "SELECT * FROM MANDAT ORDER BY " + e.SortExpression
'chaine de connexion a la base
Dim strConnection As String = Global.loginbase
'creation de la connection
Dim connection As New SqlConnection(strConnection)
'creation de la requete
Dim requete As New SqlCommand(strRequete, connection)
'ouverture de la connection
connection.Open()
'execution de la requete et fermeture de celle ci a quand l'objet datareader se ferme
DataGrid1.DataSource = requete.ExecuteReader(CommandBehavior.CloseConnection)
'lie le controle a la source de données
DataGrid1.DataBind()
'fermeture de la connection
connection.Close()
'raffraichissement du tableau
charger_grille()
End Sub
'suppression d'un enregistrement
Sub suppr(ByVal resul As String)
'definition de la requete
Dim strRequete2 As String = "DELETE MANDAT WHERE NUM_MANDAT=" + resul
'chaine de connexion a la base
Dim strConnection As String = Global.loginbase
'creation de la connection
Dim connection As New SqlConnection(strConnection)
'creation de la requete
Dim requete As New SqlCommand(strRequete2, connection)
'ouverture de la connection
connection.Open()
'execution de la requete
requete.ExecuteNonQuery()
'fermeture de la connection
connection.Close()
End Sub
'quand on clique sur un bouton
Sub DataGrid1_ItemCommand(ByVal Sender As Object, ByVal e As DataGridCommandEventArgs)
'recuperation de l'id de l'enregistrement
Dim strResultat As String = e.Item.Cells(0).Text
'recuperation du bouton cliqué
Dim commande As String = e.CommandName
'si on a clique sur supprimer
If (commande = "supprimer") Then
'on supprime l'enregistrement grace a l'ide recupéré
suppr(strResultat)
End If
'raffraichissement du tableau
charger_grille()
End Sub
Sub DataGrid1_Page(ByVal sender As Object, ByVal e As DataGridPageChangedEventArgs) Handles DataGrid1.PageIndexChanged
DataGrid1.CurrentPageIndex = e.NewPageIndex
charger_grille()
End Sub
End Class
Partager