IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Appel d'une procédure stocker


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2011
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 255
    Par défaut Appel d'une procédure stocker
    Bonjour a tous,

    Je souhaite appeler une procédure stocker dans mon code vb.net

    Voici le code de la procédure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CREATE procedure [dbo].[modifierClient]  (@p_id varchar(10), @p_nom varchar(30),@p_adresse varchar(20))
    AS
    update CLIENTS_TBL set NOM_CLIENT=@p_nom, ADRESSE_CLIENT=@p_adresse WHERE ID_CLIENT=@p_id;
    Et voici mon code vb.net

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        Dim cxString As New SqlConnection("Data Source=JEROME-PC\SQLEXPRESS;Initial Catalog=Album;Integrated Security=True")
            cxString.Open()
            Dim cmd As SqlCommand = New SqlCommand("modifierClient", cxString)
            cmd.CommandType = CommandType.StoredProcedure
     
            cmd.Parameters("@p_id").Value = "12"
            cmd.Parameters("@p_nom").Value = "Dupond"
            cmd.Parameters("@p_adresse").Value = "250 avenue Victor Hugo"
     
            cmd.ExecuteNonQuery()
            Console.Read()
    A l'exécution j'ai cette erreur :

    Un SqlParameter avec ParameterName '@p_id' n'est pas contenu dans ce SqlParameterCollection.
    Merci de votre aide.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Tu as cette erreur parce que tout simplement tes paramètres ne sont pas dans la collection Parameters de ta commande avant d'assigner leur valeur.
    Il va falloir d'abord instancier chaque paramètres et ensuite les ajouter à ta collection Parameters.

  3. #3
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    cmd.Parameters.Add("@p_id").Value =

    sinon mettre une simple requete dans une procédure stockée n'apporte pas grand chose ...
    et si tu fais comme ca tout le temps, tu auras des centaines de procédures stockées pour rien, ce qui n'est pas forcément pratique
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2011
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 255
    Par défaut
    Merci a vous deux.

    Oui Pol63 je ne compte pas mettre une simple requete dans ma procédure stockée.

    En fait comme c'est la première fois que j'utilise une procédure, je voulais voir sont fonctionnement, comprendre le mécanisme et ensuite écrire de "vrai" procédure.

    Au sujet de mon problème, je ne peut ajouter le .add dans ma commande.

    l'auto complétion ne me le propose pas. C'est bizarre

    [Edit] Mea culpa j'était en mode Commun et non en Tous.[/Edit]

    En revanche il me dit :
    'Value' n'est pas un membre de 'Integer'

  5. #5
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2011
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 255
    Par défaut
    Finalement j'ai trouver :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
       cmd.Parameters.Add("p_id", SqlDbType.VarChar, 10)
            cmd.Parameters.Add("p_nom", SqlDbType.VarChar, 30)
            cmd.Parameters.Add("p_adresse", SqlDbType.VarChar, 20)
     
            cxString.Open()
     
            cmd.Parameters("p_id").Value = "12"
            cmd.Parameters("p_nom").Value = "Dupond"
            cmd.Parameters("p_adresse").Value = "4 avenue Pompidou"
     
     
            cmd.ExecuteNonQuery()
            cxString.Close()
            Console.Read()
    Encore merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AS400] Appel d'une procédure stockée
    Par Portekoi dans le forum DB2
    Réponses: 55
    Dernier message: 26/11/2008, 10h01
  2. [c#] Appel d'une procédure stockée Record
    Par lapartdombre dans le forum Accès aux données
    Réponses: 4
    Dernier message: 02/08/2007, 17h20
  3. Appel d'une procédure stockée sous VB 6
    Par Polux000 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 11/01/2006, 09h21
  4. Réponses: 2
    Dernier message: 10/12/2004, 15h43
  5. Appel d'une procédure stockée par un vbscript
    Par NicoNours dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/10/2004, 13h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo