J'ai une classe avec une méthode qui extrait des données d'une base de données via un processus stocké SELECT. Cette méthode utilise un SqlDbReader
en renvoyant ExecuteReader()
sur un SqlCommand
.Utilisation d'une commande sqlconnection/sql via 2 méthodes liées à la base de données
La connexion et tout est fait dans cette méthode, avec des champs (tels que la chaîne de connexion) définis comme des champs de niveau classe.
J'ai maintenant besoin de remplir un tableau en fonction des résultats de cette requête (de sorte que les colonnes de chaque ligne iront dans le tableau avec son propre index). Cependant, cette requête ne sélectionnera pas toutes les données d'une table impliquée. Je peux écrire les requêtes pour obtenir ce dont j'ai besoin, mais comment puis-je utiliser une connexion tout au long de la classe? Si j'instancie l'objet de connexion et appelez Open()
dans le constructeur, j'obtiens une exception à l'exécution.
J'espère quelque chose comme ceci:
// At class level:
sqlconn.Open();
// sqlcommand set up
Method()
{
// Fire stored proc
// Insert results in a collection
}
Method2()
{
// Pass same collection in (use same one),
// Add new row columns into same collection
}
Comment puis-je faire avec le strict respect à l'esprit?
Cool. Je vais essayer. La méthode que vous décrivez fondamentalement fait tout mais appelle des méthodes qui déclenchent des procs stockés, ai-je raison? Pour des raisons techniques avec une API, je ne peux pas utiliser de paramètres, je ne serai donc pas en mesure de spécifier quelle (s) méthode (s) activer/désactiver. – dotnetdev