Bonjour,

Dans mon programme, je récupère des données issues de ma base en les stockant dans des DataTable. Ce sont des données qui ne varient pas souvent et donc ce procédé m'évite d'aller chercher en base de données.

Je charge donc mon DataTable avec la méthode Load(sqlreader) de la façon suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
// Création d'un objet SqlDataAdapter
SqlCommand command = new SqlCommand(sql, db_cnx);
 
// Exécution de la requête et récupération des résultats dans un reader
SqlDataReader reader = command.ExecuteReader();
 
dtResultat.Load(reader);
 
//Fermeture reader
reader.Close();
Puis au fur et à mesure de mon programme, je veux chercher des données dans mon DataTable. Je fais procède de la façon suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
string expression = "NomColonneA = " + ParametreA;
foundRows = table.Select(expression);
 
if (foundRows.Length == 0)
{
    // erreur
}
else{
    retour = Convert.ToInt32(foundRows[0]["NomColonneB"].ToString());
}
Le souci est que les noms de colonne ne semblent pas reportées lors du load du résultat de ma requête dans mon DataTable...

Est-ce normal ? Comment faire pour pouvoir utiliser la méthode Select ?

Merci de votre aide !