Asp.net - exécuter une procédure stockée avec passage de paramètres

Soyez le premier à donner votre avis sur cette source.

Snippet vu 31 327 fois - Téléchargée 27 fois

Contenu du snippet

A partir de cette source, il était intéressant de la compléter afin de permettre l'utilisation des Procédures Stockées qui nécessite un passage de paramètres dans l'utilisation.
- http://www.aspfr.com/code.aspx?ID=8953

Voici donc deux exemple, une en mode Insert/Update et l'autre en mode Select.

Source / Exemple :


' Deux exemples pour une utilisation des Procédure Stockées avec paramètres

' -------------------------------------------------------------------------
Public Function ExecuteNonQueryProcStock(ByVal MachaineDeConnexion As String, ByVal MonInteger As Integer, ByVal MaDate As DateTime, ByVal MonTexte As String) as Integer
' Exécution d'une Procédure Stockée de type Insertion ou Update

Dim Maconnexion As SqlConnection = New SqlConnection(MachaineDeConnexion)
Dim MonResultat As Integer = -1
Dim MaCommande As New SqlCommand()

MaCommande = New SqlCommand("MaProcStockExecute", Maconnexion)
MaCommande.CommandType = CommandType.StoredProcedure

' Déclaration pour mon premier paramètre de ma Proc stock en Int
Dim ParamInteger As SqlParameter = MaCommande.Parameters.Add("@MonIntProcStock", SqlDbType.Int)
ParamInteger.Value = MonInteger

' Déclaration pour mon second paramètre de ma Proc stock en DateTime
Dim ParamDateTime As SqlParameter = MaCommande.Parameters.Add("@MaDateProcStock", SqlDbType.DateTime)
ParamDateTime.Value = MaDate

' Déclaration pour mon second paramètre de ma Proc stock en NVarChar (2000 char)
Dim ParamNVarChar As SqlParameter = MaCommande.Parameters.Add("@MonTextProcStock", SqlDbType.NVarChar, 2000)
ParamNVarChar.Value = MonTexte

Try
 Maconnexion.Open()
 MonResultat = MaCommande.ExecuteNonQuery
Finally
 If Not (Maconnexion Is Nothing) Then Maconnexion.Close()
End Try

' On récupère une valeur qui indique si la procédure stockée s'est bien déroulée.
Return MonResultat

End Function

' -------------------------------------------------------------------------
Public Function RecupDataSetProcStock(ByVal MachaineDeConnexion As String, ByVal MonInteger As Integer, ByVal MaDate As DateTime, ByVal MonTexte As String) As Dataset
' Exécution d'une Procédure Stockée de type Sélection

Dim Maconnexion As SqlConnection = New SqlConnection(MachaineDeConnexion)
Dim MaCommande As New SqlCommand()

MaCommande = New SqlCommand("MaProcStockRenvoieDataSet", Maconnexion)
MaCommande.CommandType = CommandType.StoredProcedure

Dim MonAdapter As SqlDataAdapter = New SqlDataAdapter()
MonAdapter.SelectCommand = MaCommande

' Déclaration pour mon premier paramètre de ma Proc stock en Int
Dim ParamInteger As SqlParameter = MaCommande.Parameters.Add("@MonIntProcStock", SqlDbType.Int)
ParamInteger.Value = MonInteger

' Déclaration pour mon second paramètre de ma Proc stock en DateTime
Dim ParamDateTime As SqlParameter = MaCommande.Parameters.Add("@MaDateProcStock", SqlDbType.DateTime)
ParamDateTime.Value = MaDate

' Déclaration pour mon second paramètre de ma Proc stock en NVarChar (2000 char)
Dim ParamNVarChar As SqlParameter = MaCommande.Parameters.Add("@MonTextProcStock", SqlDbType.NVarChar, 2000)
ParamNVarChar.Value = MonTexte

Dim MonResultat As New DataSet()

Try
 Maconnexion.Open()
 MonAdapter.Fill(MonResultat)
Finally
 If Not (Maconnexion Is Nothing) Then Maconnexion.Close()
End Try

' On récupère le DataSet avec comme premier DataTable le résultat du SELECT
Return MonResultat

End Function

' -------------------------------------------------------------------------

Conclusion :


Bon Coding.

Romelard Fabrice (Alias F___)

A voir également

Ajouter un commentaire

Commentaires

Messages postés
17
Date d'inscription
dimanche 13 avril 2003
Statut
Membre
Dernière intervention
18 mai 2006

Bonjour tt le monde ma question est comment je peux recupére une valeur retourné en parametre de ma procédure stockée
Messages postés
53
Date d'inscription
mardi 15 août 2006
Statut
Membre
Dernière intervention
15 juillet 2010

Bonsoir
voila j ai enfiiiiiin trouve la solution j avait pa declarer la taille de la variable dans la procedure stocké c béte n est ce pa bon en ts cas jte remerci bcp et jveu explique l'erreur pr que d autre personne ne prenne pa autant de temp a trouver la solution s il tombe au mm piege j espere que ça sera util puisqu il ma pri bcp de tem pr le resoudre bon enfin jsé c trop bete
Messages postés
53
Date d'inscription
mardi 15 août 2006
Statut
Membre
Dernière intervention
15 juillet 2010

si il est du mm type
Messages postés
1765
Date d'inscription
jeudi 12 octobre 2000
Statut
Modérateur
Dernière intervention
11 décembre 2013
4
Par hasard, le type dans la base de données ne serait pas du char ?
Messages postés
53
Date d'inscription
mardi 15 août 2006
Statut
Membre
Dernière intervention
15 juillet 2010

rebonjour
en fait j ai aussi essayé
SqlParameter parameterpseudo = new SqlParameter("@Nm", SqlDbType.VarChar, 50);
parameterpseudo.Value = tb_membre.Text;
com.Parameters.Add(parameterpseudo);

et merciiiii j espere bien que tu pourra m aider parce ke vraiment jsui plante la jsui connecte sur msn si tu peu me parler direct s_essalhi@hotmail.com ça me ferai plaisir et remerci
Afficher les 10 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.