cs_Tytia
Messages postés13Date d'inscriptionmardi 27 janvier 2004StatutMembreDernière intervention24 juin 2006
-
7 juin 2006 à 15:24
woot6768
Messages postés393Date d'inscriptionmercredi 8 mars 2006StatutMembreDernière intervention23 mars 2007
-
7 juin 2006 à 16:04
Bonjour,
(je débute en C# )
Je voudrais créer une classe générique pour mon application pour me connecter à n'importe quelle base de données ( entre autres Access et SQl server 2005 express).
J'ai donc écrit cette classe :
class
MyDataBase{
private
string _ConnectionString;
private
string _Server;
private
string _DataSource;
//private string _Provider;
private
string _User;
private
string _Pwd;
private
Type _typeofdb;
private
Type _typeofdbcom;
private
Type _typeofdbdataadapt;
private
int _Bd;
/*Objet de traitement de la base de données*/
private
DbConnection _dbconnect;
private
DbCommand _dbcommand;
private
DbDataAdapter _dbdataAdapter;
/*Constante Des types de bases de données accessible*/
public
const
int DATABASE_ACCESS = 0;
public
const
int DATABASE_SQLSERVEUR2005E=1;
public
const
int DATABASE_SQLSERVEUR=2;
public
const
int DATABASE_ORACLE = 3;
/*Constante de retour d'erreur*/
public
const
int DB_ERROR_CONNECTIONOK = 0;
public
const
int DB_ERROR_CONNECTIONFAILED = 1;
public
const
int DB_ERROR_DBUNKNOW = 2;
public MyDataBase(
int BD,
string server,
string user,
string pwd,
string db){
_Bd = BD;
switch (_Bd){
case DATABASE_ACCESS:{
_DataSource = db;
_ConnectionString =
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="";_ConnectionString += db +
// Remplissage du DataSet avec le DataAdapter_dbdataAdapter.Fill(ds, table);
return ds;}
}
J'appel dans mon appli deux connexions :
La première sur mon serveur local sql serveur 2005 express qui se passe très bien.
MyDataBase
db =
new
MyDataBase(
MyDataBase.DATABASE_SQLSERVEUR2005E,
"SQLEXPRESS",
"sa",
"pwd",
"(....)Agenda.mdf");db.Connect();
db.OpenTable(
"Action");db.Close();
Et la deuxieme sur Access. La connection se fait correctement , mais j'obtiens une erreur sur la ligne " _dbdataAdapter.Fill(ds, table) " de la fonction opentable.
L'erreur retournée indique que la clause from n'est pas correcte. Pourtant la requete est tout à fait correct si je l'execute directement sous access, et fonctionne sur sqlserver.
MyDataBase db2 =
new
MyDataBase(
MyDataBase.DATABASE_ACCESS,
"",
"admin",
"",
"(....)Agenda.mdb");db2.Connect();