Voici une classe que j'ai créé au cours de ma session en informatique. Au début elle était vraiment basique. Maintenant je m'en sert pour des sites professionels et je voudrais vous en faire part pour des améliorations ou des commentaires (constructif).
Je résume ma classe.
NOM : clsGestionSQL
DB : Microsoft Access (N'importe qu'elle version à ma connaissance)
Fonctions :
-openConnection(ByVal path As String) : Ouvre la connecxion avec le chemin
-closeConnection() : Ferme la connecxion
-fillDataSet(ByVal pCommand As String) As Data.DataSet : Retourne un dataSet contenant le résultat de la commande
-executeQuery(ByVal pCommand As String) As OleDbDataReader : Exécute une commande (query) et retourne le dataReader
Cette fonction est plus utilisée pour lire qu'une seule ligne et sans y faire référence plusieurs fois. Le dataSet lui peut être utilisé
pour remplir une tableau dynamique avec tous les membres d'un site.
-executeNonQuery(ByVal command As String) As Integer : Exécut une commande (non query : INSERT, UPDATE, DELETE) et retourne le nombre d'enrégistrement
qui a été touché.
-md5Crypt(ByVal pText As String) As String : Pour les mots de passes à crypter en md5
-replaceCarac(ByVal ptext As String) As String : Remplace les caractères suceptibles de faire planter la base de données
-deReplaceCarac(ByVal ptext As String) As String : Le contraire de la fonction précédente.
La pluspart du temps, mon site utilise 2 classes. Une qui est la gestion sur SQL (aucune vérification sur les commande (Injection possible)) et une autre qui fait la gestion de tout mon site web et qui est spécifique à ce site. C'est dans cette classe que je fais les validations nécéssaire avant d'envoyé à la classe gestionSQL.
Source / Exemple :
Imports System.Data.OleDb
Public Class clsGestionSQL
Public myConnection As OleDbConnection
Private myDataReader As OleDbDataReader
' Ouvrir la connexion
Public Sub openConnection(ByVal path As String)
myConnection = New OleDbConnection
myConnection.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=" & path
' Ouvre la connexion
myConnection.Open()
End Sub
' Ferme la connexion
Public Sub closeConnection()
myConnection.Close()
End Sub
' Rempli un dataSet pour le retourner
Public Function fillDataSet(ByVal pCommand As String) As Data.DataSet
Dim dataAdapter As New OleDbDataAdapter(pCommand, myConnection)
Dim dataSet As New Data.DataSet
dataAdapter.Fill(dataSet)
Return dataSet
End Function
' Rempli le dataReader dépendant de la commande
Public Function executeQuery(ByVal pCommand As String) As OleDbDataReader
Dim maCommande As OleDbCommand
maCommande = New OleDbCommand(pCommand, myConnection)
' Exécute la commande et l'affecte dans un dataReader
myDataReader = maCommande.ExecuteReader()
Return myDataReader
End Function
Public Function executeNonQuery(ByVal command As String) As Integer
Dim sqlCommand As New OleDbCommand(command, myConnection)
Dim integerToReturn As Integer
integerToReturn = sqlCommand.ExecuteNonQuery()
Return integerToReturn
End Function
' Fonction pour crypter en MD5 le mot de passe
Public Function md5Crypt(ByVal pText As String) As String
Return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(pText, "md5")
End Function
' Remplace les caractères spéciaux
Public Function replaceCarac(ByVal ptext As String) As String
Dim text As String
text = Replace(ptext, "'", "%1")
text = Replace(text, "&", "%2")
text = Replace(text, "\", "%3")
text = Replace(text, "#", "%4")
text = Replace(text, "<", "<")
text = Replace(text, ">", ">")
Return text
End Function
' "Déremplace" les caractères spéciaux
Public Function deReplaceCarac(ByVal ptext As String) As String
Dim text As String
text = Replace(ptext, "%1", "'")
text = Replace(text, "%2", "&")
text = Replace(text, "%3", "\")
text = Replace(text, "%4", "#")
Return text
End Function
End Class
Conclusion :
La classe a été développé avec la plateforme : Microsoft VisualStudio 2005 avec le Framework 2.0
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.