Soyez le premier à donner votre avis sur cette source.
Snippet vu 10 562 fois - Téléchargée 19 fois
using System; using System.Collections.Generic; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.OleDb; using System.Collections; namespace stage { class sql_querry { OleDbConnection conection; public sql_querry(string localisation, string nombase) { string conectionstring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + localisation + "\\" + nombase + ";"; conection = new OleDbConnection(); conection.ConnectionString = conectionstring; conection.Open(); } public bool command_sql(string commande, out ArrayList res) { ArrayList ligne; OleDbDataReader reader; OleDbCommand cmd; bool etat = true; int i; cmd = new OleDbCommand(); ligne = new ArrayList(); res = new ArrayList(); try { cmd.Connection = conection; cmd.CommandText = commande; reader = cmd.ExecuteReader(); while (reader.NextResult()) { for (i = 0; i > reader.FieldCount; i++) { ligne.Add(reader.GetValue(i)); } res.Add(ligne); } } catch (OleDbException ex) { MessageBox.Show("erreur : " + ex); etat = false; } return etat; } public bool command_sql(string commande) { OleDbCommand cmd; bool etat = true; cmd = new OleDbCommand(); cmd.Connection = conection; try { cmd.CommandText = commande; cmd.ExecuteReader(); } catch (OleDbException ex) { MessageBox.Show("erreur : " + ex.Message); etat = false; } return etat; } } }
26 avril 2011 à 09:54
bref... il y a encore du boulot pour faciliter la connexion à une base de données !
26 avril 2011 à 12:56
c'est un exemple de code qui te permet de ne pas retaper 15000 fois la même chose !!!
adapte celons tes besoin.
26 avril 2011 à 14:44
Enfin, fais un effort pour ton orthographe, que ça soit en français ou en anglais.
Le seul mot que j'ai vu sans faute c'est "SQL", même dans "Query" c'est pas bon...
26 avril 2011 à 14:55
Il est inutile de prendre la mouche sur un commentaire. Après tout, tu as posté ce code pour avoir l'avis et commentaires de tout un chacun.
Je me permettrai donc d'ajouter le mien:
1) Convention de nommage pas très rigoureux: mélange français-anglais, nom de classe et méthodes non explicites...
2) Problème d'ouverture et fermeture de connexion: l'ouverture est faite dans le constructeur
et la fermeture est inexistante...
Comment ferais-je si la connexion se perd au milieu de mon programme ??? (toutes les méthodes ne fonctionnent plus).
Comment ferais-je pour gérer les transactions ???
3) Le remplacement des exceptions par un code retour entraine un grosse perte d'information dans le code appelant. De plus, en cas d'exception, un MessageBox.Show(...) est appelé => pas très best-practice tout ça. En effet, si je veux utiliser ta brique dans un projet Asp.Net, que se passe-t-il en cas d'exception ???
4) Retour d'exécution de commande dans une ArrayList[ArrayList[object]] pas très best-practice non plus (et je passerai la méthode de lecture qui est discutable aussi) => préférer l'utilisation d'un DataSet plus adaptée au fonctionnement.
Et plutôt que "d'adapter à mes besoins" (comme tu le dis si bien), je préférerai largement l'utilisation d'une librairie plus qu'approuvé par la communauté .Net: Enterprise Library.
Url: http://msdn.microsoft.com/en-us/library/ff648951.aspx
En l'occurence, la partie "Data Access Application Block": http://msdn.microsoft.com/en-us/magazine/cc163766.aspx
C'est en open source, tu auras donc le plaisir de pouvoir voir tout le code d'accès aux base de données.
Bref, tu comprendras que je suis plutôt d'accord avec le commentaire de Sebmafate.
Ne vois pas là une intention de ma part de te froisser, uniquement celle de donner mon avis pour faire vivre l'échange communautaire créé par codes-sources et nous faire tous avancer...
Car savoir accepter les critiques et se remettre en cause, c'est la raison d'être d'un développeur...
26 avril 2011 à 15:01
sur ce au revoir mes chère râleurs.
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.