Stocker des OleDbDataAdapter
Bonjour,
Je suis nouveau sur ce forum et voici mon problème :
Je développe actuellement une apllication de base de données en C#. Pour le moment j'utilise une base Access mais prochainement elle evoluera vers PostgreSQL.
C'est mon premier gros projet et j'ai tenu à programmer plus "propre", plus POO et en 3 couches (Données, Métier, Interface) mais je pense que je me suis pris un peu trop au jeu....
Je souhaitais avoir une structure (ou une classe) pour y stocker mes différents objets se réferrant à une table donnée, puis une collection de ces éléments dans une liste.
Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
class _cDao
{
private DataSet ds;
private string[] NomTables = {"Categorie", "Fabricant", "Fournisseur", "RefFournisseur", "Stock" };
private struct sTable
{
public string sNomTable;
public OleDbDataAdapter da;
public OleDbCommandBuilder cb;
}
private List<sTable> ListeTables;
public _cDao()
{
this.ds = new DataSet();
this.ListeTables = new List<sTable>();
Connexion cnx = new Connexion();
cnx.Open();
foreach (string _itable in NomTables)
{
sTable table = new sTable();
string requete = "SELECT * FROM " + _itable;
table.sNomTable = _itable;
table.da = new OleDbDataAdapter(requete, cnx.GetConnexion());
table.cb = new OleDbCommandBuilder(table.da);
table.da.FillSchema(ds, SchemaType.Mapped, _itable);
table.da.Fill(ds, _itable);
ListeTables.Add(table);
}
cnx.Close();
}
public DataSet GetDataSet()
{
return ds;
}
} |
Cette partie de code fonctionne bien, je récupére bien mon DataSet chargé correctement. Dans une prochaine version c'est la couche métier qui transmettra les noms de table à récupérer.
Mon problème est ici :
Code:
1 2 3 4 5 6 7 8 9 10
|
public void TableUpdate(int _itable)
{
sTable table = new sTable();
table = ListeTables[_itable];
table.da(ds.Tables[table.sNomTable]);
} |
Je n'arrive pas à ré-utiliser le DataAdapter stocké... Je reçois le message d'erreur suivant à la compilation :
Citation:
Un membre '_Dao._cDao.sTable.da' ne pouvant pas être appelé ne peut pas être utilisé comme une méthode.
...pourtant Intellisense le voit bien.
Et si j'ajoute une méthode qui me renvoie le DataAdapter, j'ai le message :
Citation:
da est un variable utilisé comme un méthode.
J'ai également essayé de cloner les éléments mais en vain...
Merci de l'aide que vous pourrez m'apporter.