0/5 (1 avis)
Vue 15 286 fois - Téléchargée 1 378 fois
using System; using System.Data.OleDb; using System.Windows.Forms; namespace cDatabase { /// <summary> /// Summary description for cAccess. /// </summary> /// public class cAccessException:Exception { private string errorMessage; public override string Message { get { return this.errorMessage ; } } public cAccessException(string ErrorMessage) { this.errorMessage = ErrorMessage; } public override string ToString() { return this.errorMessage; } } public class cAccess { private OleDbConnection oConn = new OleDbConnection(); private OleDbCommand oCmd = new OleDbCommand(); private string Provider= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="; private string Security= ";Persist Security Info=False"; private string Security2=";Jet OLEDB:Database Password="; private string Security3="User Id="; public OleDbConnection GetConnection() { if (oConn !=null) { return oConn; } else { return null; } } public cAccess(string Database) { try { oConn = new OleDbConnection(Provider + Database + Security); oConn.Open(); } catch(Exception pe) { throw new cAccessException(pe.Message + '\r' + pe.Source ); } } public cAccess(string Database,string User,string Passw) { try { oConn = new OleDbConnection(Provider + Database + Security2 + Passw + ";" + Security3 + User + ";"); oConn.Open(); } catch(Exception pe) { throw new cAccessException(pe.Message + '\r' + pe.Source ); } } public OleDbDataReader ExecuteReaderSql(string sql ) { OleDbCommand oCmd= new OleDbCommand(sql,oConn ); OleDbDataReader oDrdr; try { oDrdr= oCmd.ExecuteReader(); return oDrdr; } catch(OleDbException pe) { throw new cAccessException(pe.Message + '\r' + pe.Source ); } } public void ExecuteQuery(string sql) { OleDbCommand oCmd= new OleDbCommand(sql,oConn ); try { oCmd.ExecuteNonQuery(); } catch(OleDbException pe) { throw new cAccessException(pe.Message + '\r' + pe.Source ); } } } }
19 sept. 2005 à 08:30
mettre le niveau expert sur cela est peut etre exagéré, mais c'est pas mal.
Alors, si tu veux perfectionner la chose, ce que je vois moi à ajouter , ca serait :
une meilleur gestion de la connexion :
tu l'ouvre, mais peut etre est t'elle déjà ouverte, et il n'y a pas de fonction pour fermer cette connexion
Il n'y a pas de gestion de transaction, c'est dommmage. Pour toute acces en écriture , je te conseillerais quand meme d'avoir une gestion de transaction.
Pour SQL server, il existe des objets dédiés je pense : sqlcommand, sqlconnection, ils sont peut etre plus efficace, enfin
bref, merci
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.