simaxe25
Messages postés13Date d'inscriptionvendredi 7 janvier 2005StatutMembreDernière intervention16 juillet 2008 16 juil. 2008 à 04:16
pour info, il aurait été utile de faire un singleton (design pattern) sur ta classe :
- pour ainsi éviter une surcharge inutile des connexion vers le serveur MySql
- et pour pouvoir disposer de la connexion sur l'ensemble du projet
TheSin
Messages postés331Date d'inscriptionmardi 12 novembre 2002StatutMembreDernière intervention10 février 2009 18 nov. 2006 à 14:19
En fait, moi pour le genre de cas que tu décris, je me sert du datatables puis du DataRow pour renvoyer directement la bonne valeur.
Au pire j'ai mon datatable et j'utilise la méthode Select().
Merci pour l'info du ExecuteScalar, je devrais m'en servir, j'ai vu un peu cette notion ce matin, je vais donc l'appronfondir :-)
cs_vladam
Messages postés216Date d'inscriptiondimanche 13 janvier 2002StatutModérateurDernière intervention 7 novembre 2009 18 nov. 2006 à 12:00
je suis d'accord avec toi sur presque tout TheSin qu'il faut mieux renvoyer un DataTable fortement typé plutôt qu'un tableau de string.
Il est quand même intéressant des fois de renvoyer un string (pas un tableau) afin d'optimiser le code. Je m'explique :
Si j'ai l'ID d'une personne, et que je veux faire un select du nom uniquement (ex: SELECT Name FROM Users WHERE IdUser=@IdUser).
Dans ce cas, le meilleur moyen est d'utiliser un "ExecuteScalar" et de renvoyer un string.
Mais effectivement, je ne vois pas l'interêt non plus de ce code, car "pourquoi faire ce qui existe déjà, en moins complet et moins bien codé ?"
TheSin
Messages postés331Date d'inscriptionmardi 12 novembre 2002StatutMembreDernière intervention10 février 2009 18 nov. 2006 à 09:38
Je ne vois pas vraiment l'intérêt de la classe ....
Les exceptions sont les exceptions génériques C# et pas celles de MySQL (MySQLException).
Où sont les gestions d'erreurs ? (c'est quand même super utile lorsque l'on parle avec le SGBD de connaître l'erreur d'une requête par exemple).
Pourquoi renvoyer les résultats d'un "SELECT" en string alors qu'il est nettement plus simple d'utiliser un DataSet ou un DataTable ?
cs_vladam
Messages postés216Date d'inscriptiondimanche 13 janvier 2002StatutModérateurDernière intervention 7 novembre 2009 30 oct. 2006 à 08:59
Ou est l'intérêt de ta classe ?
Je crois qu'il ne faut pas partir sur une classe générique comme tu le fais. Je pense au contraire que le développeur devrait utiliser directement les espaces de noms de la librairie de MySQL lui permettant d'optimiser son code.
C'est un avis personnel, mais je pense que les classes déjà présentes dans la librairie "MySql.Data.dll" sont un très bon compromis entre simplicité et fonctionnalités. De plus, tu ne peux pas travailler en requête fortement typée, ce qui est primordial pour fournir un code de qualité, optimisé et robuste (je passerais sur le SQL Injection, les performances, les commentaires, ...).
jeb5292
Messages postés3Date d'inscriptiondimanche 3 avril 2005StatutMembreDernière intervention 4 décembre 2006 24 oct. 2006 à 14:50
Merci de donner un commentaire pour ma source, cela me permettrait de l'améliorer
16 juil. 2008 à 04:16
- pour ainsi éviter une surcharge inutile des connexion vers le serveur MySql
- et pour pouvoir disposer de la connexion sur l'ensemble du projet
18 nov. 2006 à 14:19
Au pire j'ai mon datatable et j'utilise la méthode Select().
Merci pour l'info du ExecuteScalar, je devrais m'en servir, j'ai vu un peu cette notion ce matin, je vais donc l'appronfondir :-)
18 nov. 2006 à 12:00
Il est quand même intéressant des fois de renvoyer un string (pas un tableau) afin d'optimiser le code. Je m'explique :
Si j'ai l'ID d'une personne, et que je veux faire un select du nom uniquement (ex: SELECT Name FROM Users WHERE IdUser=@IdUser).
Dans ce cas, le meilleur moyen est d'utiliser un "ExecuteScalar" et de renvoyer un string.
Mais effectivement, je ne vois pas l'interêt non plus de ce code, car "pourquoi faire ce qui existe déjà, en moins complet et moins bien codé ?"
18 nov. 2006 à 09:38
Les exceptions sont les exceptions génériques C# et pas celles de MySQL (MySQLException).
Où sont les gestions d'erreurs ? (c'est quand même super utile lorsque l'on parle avec le SGBD de connaître l'erreur d'une requête par exemple).
Pourquoi renvoyer les résultats d'un "SELECT" en string alors qu'il est nettement plus simple d'utiliser un DataSet ou un DataTable ?
30 oct. 2006 à 08:59
Je crois qu'il ne faut pas partir sur une classe générique comme tu le fais. Je pense au contraire que le développeur devrait utiliser directement les espaces de noms de la librairie de MySQL lui permettant d'optimiser son code.
C'est un avis personnel, mais je pense que les classes déjà présentes dans la librairie "MySql.Data.dll" sont un très bon compromis entre simplicité et fonctionnalités. De plus, tu ne peux pas travailler en requête fortement typée, ce qui est primordial pour fournir un code de qualité, optimisé et robuste (je passerais sur le SQL Injection, les performances, les commentaires, ...).
24 oct. 2006 à 14:50
Merci
@++
Jean-Ed