2010-06-30 5 views
1

En général, quand j'exécute un proc de C# stocké (ASP.NET 3.5), je dois effectuer les opérations suivantes:Comment exécuter un proc stocké en C# en toute simplicité?

myConnection.Open(); 

SqlCommand cmd = myConnection.CreateCommand(); 
cmd.CommandType = CommandType.StoredProcedure; 
cmd.CommandText = "myProc"; 

SqlParameter param1 = cmd.Parameters.Add("@param1", SqlDbType.VarChar); 
param1.Direction = ParameterDirection.Input; 
param1.Value = txtParam.Text; 

SqlDataReader reader = cmd.ExecuteReader(); 

Y at-il une meilleure façon de le faire? Y at-il un moyen de créer une classe C# qui est quelque peu polymorphe qui peut gérer l'appel d'un proc comme vous le feriez d'une fonction? (ex Procs.myProc(param1))

+0

Pas vraiment, c'est au développeur de fournir ici de l'abstraction. La plupart des gens (y compris moi-même) créent des méthodes wrapper. I.e public Liste GetFoos (chaîne foo, int barre) La méthode ferait alors le code ci-dessus pour vous (créer/éliminer la connexion, définir les paramètres, etc). – RPM1984

Répondre

1

vous pouvez vraiment fluidifié sur le nombre de lignes de code en mettant en œuvre le Enterprise Library..

+0

Et avec EntLib5 DAB, je suis presque jaloux de la facilité avec laquelle ils ont fait des choses si vous écrivez des procs stockés ... presque. –

0

Vous pouvez soit écrire votre propre classe d'assistance pour faire tout ce qui fonctionne (ouvrir/fermer les connexions, etc) de sorte que vous avez seulement à passer le nom de la procédure et les paramètres et obtenir n'importe quoi sur l'autre côté (lecteur, jeu de données, etc ...) ou vous pouvez utiliser un outil tiers qui fait que pour vous (et des tas plus) comme Subsonic:

http://geekswithblogs.net/scottkuhl/archive/2006/12/08/100700.aspx

Questions connexes