begin process at 2010 07 31 04:57:11
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de données

 > ASP.NET - EXÉCUTER UNE PROCÉDURE STOCKÉE AVEC PASSAGE DE PARAMÈTRES

ASP.NET - EXÉCUTER UNE PROCÉDURE STOCKÉE AVEC PASSAGE DE PARAMÈTRES


 Information sur la source

Note :
8 / 10 - par 2 personnes
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Base de données Source .NET ( DotNet ) Niveau :Débutant Date de création :15/01/2004 Date de mise à jour :15/01/2004 19:54:57 Vu :24 312

Auteur : fabrice69

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note


 Description

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

  • ' 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
  • ' -------------------------------------------------------------------------
' 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___)


 Sources du même auteur

Source .NET (Dotnet) SHAREPOINT 2007 - OBTENIR LA LISTE DES WEBPARTS DANS UNE PAG...
Source .NET (Dotnet) SHAREPOINT 2007 - OBTERNIR LA LISTE DES FEATURES D'UN SITE
Source avec une capture Source .NET (Dotnet) SHAREPOINT 2007 - CHARGER LA LISTE DES COLLATIONS SHAREPOINT...
Source avec une capture Source .NET (Dotnet) SHAREPOINT 2007 - CHARGER LA LISTE DES LANGUES INSTALLÉES DA...
Source .NET (Dotnet) C# - FONCTION TRÈS SIMPLE POUR ENVOYER UN MAIL VIA SMTP

 Sources de la même categorie

Source avec Zip GESTION_ENSEIGNANTS par Elmarzougui
Source avec Zip ZONE MEMBRE EN ASP "E-MEMBRES1.0" par cmaelc
Source avec Zip Source avec une capture Source .NET (Dotnet) ADMINISTRATION BASE DE DONNÉES ORACLE par chbayah
Source avec Zip Source avec une capture Source .NET (Dotnet) UTILISATION D'UN DATASET par ManuAntibes
Source avec Zip Source .NET (Dotnet) INSERTION / RECUPERATION D'IMAGE STOCKEE DANS UNE DB MS SQL ... par jimmy69

Commentaires et avis

Commentaire de Domilo le 19/01/2004 09:39:48

Bonjour,

Pour ceux qui trouvent que cela fait trop de code à frapper,

Le code :
Dim ParamNVarChar As SqlParameter = MaCommande.Parameters.Add("@MonTextProcStock", SqlDbType.NVarChar, 2000)
ParamNVarChar.Value = MonTexte

Comme la variable  ParamNVarChar n'est pas utilisé dans la suite du code, on peut éviter de la déclarer :
MaCommande.Parameters.Add("@MonTextProcStock", SqlDbType.NVarChar, 2000).Value = MonTexte

Et même :
MaCommande.Parameters.Add("@MonTextProcStock", MonTexte)

Pour ce dernier cas ce sera un VarChar très grand (4000?) qui sera passé au serveur si le paramètre est du type string.
Sont également accepté les Numérique, date,..., mais on ne maitrise pas le typage qui sera choisit (en générale ce n'est pas grave)

@Bientôt...

Commentaire de fabrice69 le 19/01/2004 10:27:39 administrateur CS

Merci pour cette information, elle servira à un grand nombre je pense.

F___

Commentaire de New_World le 19/08/2006 02:58:00

salut

vos code sont parfait et logique mais le probleme jcroi que c de moi parce que a la place de "Montexte" j essaye de mettre un textbox pr pouvoir passer la variable a la procedure mais  quan je debogue et j ecri mes donné au textbox seulment le premier lettre qui s'enregistre a la base de donne par exemple si jfai entrer "toto"  il ya que le 't' qui s'enregistre a la base
bon voila
MaCommande.Parameters.Add("@MonTextProcStock", MonTexte)
a la place du "MonTexte" j utilise un textbox
merci de biiiien
en fait j aie le mm prob si j ecri Montexte
et mercii encore

Commentaire de fabrice69 le 19/08/2006 07:33:50 administrateur CS

Bonjour,

Vous avez mal lu et appliqué l'exemple, vous devez utiliser ceci :
- MaCommande.Parameters.Add("@MonTextProcStock", MonTexte, xxxxx)

xxxxx étant la taille de votre champ varchar, dans la base de données.

Cordialemment

Romelard Fabrice

Commentaire de New_World le 19/08/2006 11:55:20

bonjour
c pa ça le probleme parce que j'ai deja montionner la taille du champ voila ma ligne :
com.Parameters.Add("@Nm",SqlDbType.NVarChar,50,"nom").Value=textbox.Text;
:::mon prob c que k il ya que la 1ere lettre de ma variable qui s enregistre :oui j ai aussi mis a la place de 50 ,4000 encore le mm prob parce ke ça peu que tu pense que c a cause de ça

et j ai aussi essayer ça mai c un autre prob parce que la il me di que c impossible de convertir de 'string' en 'System.Data.SqlDbType'
com.Parameters.Add("@Nm","MonTexte",50,"nom");

et merciiiiiiiiiiii

Commentaire de New_World le 19/08/2006 12:07:36

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

Commentaire de fabrice69 le 19/08/2006 13:47:20 administrateur CS

Par hasard, le type dans la base de données ne serait pas du char ?

Commentaire de New_World le 19/08/2006 16:16:07

si il est du mm type  

Commentaire de New_World le 19/08/2006 21:11:04

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

Commentaire de hichvbasic le 24/12/2007 10:35:43

Bonjour tt le monde ma question est comment je peux recupére une valeur retourné en parametre de ma procédure stockée

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Juillet 2010
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,437 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales