Appelé et exécuter une procédure stockée [Résolu]

Messages postés
54
Date d'inscription
dimanche 9 septembre 2007
Dernière intervention
22 août 2012
- - Dernière réponse : krimog
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Dernière intervention
14 février 2015
- 30 avril 2012 à 16:15
bonjour,
j ai realiser la procedure stockee suivante
USE [RECLACSR-DB]
GO
/****** Object:  StoredProcedure [dbo].[CreerService]    Script Date: 04/30/2012 05:52:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[CreerService]
-- Add the parameters for the stored procedure here
@SVC_ID int,
@SVC_LIB nvarchar(50),
@SVC_CODE int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

    -- Insert statements for procedure here
insert into PAR_SERVICE (SVC_ID ,SVC_LIB  ,SVC_CODE  )
Values (@SVC_ID ,@SVC_LIB,@SVC_CODE )  ;
IF @@ERROR > 0
ROLLBACK
END

elle s execute tres bien en test dans SQL Manager
maintemant je voudrais l'utiliser dasn mon code.
pour cela ja i plusieurs fonction
1- la fonction qui ouvre ma connection
        public static void InitConnexionMobile()
        {
            try
            {
                //instancier l'objet de connexion
                m_Connexion = new SqlConnection(Properties.Settings.Default.cnStr);

                //Ouvrir la connexion à la bd
                m_Connexion.Open();

                //creer la commande et indiquer le type de commande
                m_commande = m_Connexion.CreateCommand();
                m_commande.CommandType = CommandType.StoredProcedure;
            }
            catch (Exception ex)
            {
                //lever une exception et l'ecrire dans le journal d'événement windows
                EventLog.GetEventLogs(ex.Message);
            }

        }

2- la fonction d execution de ma prodecure
        public static void ACTIONExecuteRequeteSansRetour(string chaineSql)
        {
            InitConnexionMobile();
            try
            {
                m_commande.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                // ReSharper disable PossibleIntendedRethrow
                throw ex;
                // ReSharper restore PossibleIntendedRethrow
            }
            finally
            {
                Dispose();
            }
        }

3- losque j apelle ma procedure par un bouton , j ecris
         private void button5_Click(object sender, EventArgs e)
         {
             ExecuteRequete.ACTIONExecuteRequeteSansRetour("CreerService");
         }

"CreerService qui est le nom de ma procedure" elle va s executer en me disant que j ai pas passer mes parametres ce qui est normal
comment je procede pour passer donc mes parametres, car la fonction ACTIONExecuteRequeteSansRetour doit m executer plusieurs procedures bien differentes
Merci
marclas
Afficher la suite 

Votre réponse

1 réponse

Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Dernière intervention
14 février 2015
-1
Merci
Salut

D'abord, petite chose : si tu veux exécuter une procédure stockée, il faut mettre son nom dans le "CommandText" de ta commande :
m_commande.CommandText = chaineSql;


Ensuite, c'est ta commande que tu dois disposer :
if (m_commande != null)
{
    m_commande.Dispose();
}


Enfin, si tu as des paramètres à envoyer à ta procédure stockée, il faut utiliser la propriété Parameters de ta commande :
m_commande.Parameters.Add(new SqlParameter("@monParam", maValeur));


Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
Commenter la réponse de krimog

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.