+ la fonction qui retourne le string, il faut choisir l'un ou l'autre
tant qu'à faire autant garder le retour
par contre as string, c'est une mauvaise idée, quand on veut que tout soit possible et ne change pas de type on met as object, tout hérite de objet
en théorie il faut une property plutot ca fait plus propre et c'est plus évolutif
pour le reader il faut un readonly property, par défaut il faut interdire tout ce qui est illogique ou dangereux, que quelqu'un d'extérieur à la classe puisse modifier le reader stocké ici en fait partie
(...)
là aussi le reader soit tu le retournes, soit tu l'exposes
tant qu'à faire choisit le même comportement dans les 2 cas 
Public Function ConnectionScalar() As String
comme dit précédemment un decimal, une date ou encore un tableau d'octet dans un string, c'est loin d'être une bonne idée => As Object
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| Public Function ConnectionScalar() As String
Me.cmd_sql_base.Connection = cnx_sql_base
Me.cmd_sql_base.CommandText = Me.Requete
Try
Me.cnx_sql_base.Open()
Me.result = cmd_sql_base.ExecuteScalar().ToString
Catch ex As Exception
MsgBox("Erreur : " & ex.Message)
Finally
Me.cmd_sql_base.Dispose()
Me.cnx_sql_base.Close()
Me.cnx_sql_base.Dispose()
End Try
Return result
End Function |
le try catch c'est bien
msgbox c'est très moyen, le mieux reste de laisser passer l'erreur, car l'appelant doit savoir s'il y a eut une erreur, genre pour arreter ce qu'il est en train de faire
cnx.dispose fait le .close
disposer la connexion la rend inutilisable par la suite, ce qui oblige si l'appelant à 2 requete à faire à instancier 2 connexions
mettre quelque chose à nothing est rarement utile, c'est automatique en sortie de portée

Envoyé par
le_binr
Quand tu parle de typer les fonctions, ca veux dire quoi ?
le as derrière
dans ton premier code tu avais une fonction non typée (donc as object)
et tu n'as pas les bons paramètres dans vb (option explicit et strict on)
Partager