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

ADO.NET Discussion :

sqldatasource et paramètres Output


Sujet :

ADO.NET

  1. #1
    Membre à l'essai
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 17
    Points : 23
    Points
    23
    Par défaut sqldatasource et paramètres Output
    Bonjour à toutes et tous

    j'ai un problème avec un sqldatasource et je ne vois pas ou je fais une erreur

    j'ai une procédure stockée qui contient 3 paramètres 2 en entrée et un en retour. cette procédure stockée Fonctionne correctement coté SQL
    Maintenant coté ASP C# le paramètre que je veux récupérer n'est autre que le nombres d'enregistrements retourné par la requête,mais au lieu de me donner la valeur que j'attends il me donne son type soit Int32
    j'ai fouillé dans l'objet paramètre de retour il n'y à aucune valeur correspondant à ma requête. ?????? voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SqlDatasource.SelectCommandType = SqlDataSourceCommandType.StoredProcedure;
    SqlDatasource.SelectParameters.Clear();
    SqlDatasource.SelectCommand = "MA_PROCEDURE_STOCKEE";
    SqlDatasource.SelectParameters.Add("ope", "TEST");
    SqlDatasource.SelectParameters.Add("NOM", "JEAN");
     
    SqlParameter monParametre = new SqlParameter("nblignes", System.Data.DbType.Int32);
    monParametre.Direction = System.Data.ParameterDirection.Output;
    SqlDatasource.SelectParameters.Add(monParametre.ParameterName,System.Data.DbType.Int32,"0");
    LblEnr.Text = Convert.ToString(monParametre.Value); AFFICHE UN BEAU INT32

    Franchement la je vois pas

    Merci à tous

  2. #2
    Invité
    Invité(e)
    Par défaut
    Les trois dernières lignes sont bizarres et la dernière ligne est incorrecte. Parce que tu crées ton paramètres au lieu de l'ajouter, ce qui n'est pas le cas, tu en crées un autre que tu ajoutes à sqlDataSource.

    Remplace la dernière instruction par
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SqlDatasource.SelectParameters.Add(monParametre);

  3. #3
    Membre à l'essai
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 17
    Points : 23
    Points
    23
    Par défaut
    Merci H2s84

    Mais cela ne fonctionne pas

    Erreur 2 Argument '1' : impossible de convertir de 'System.Data.SqlClient.SqlParameter' en 'System.Web.UI.WebControls.Parameter'
    Le but de la manoeuvre étant de récupérer une variable output d'une procédure stockée via un SqlDataSource

    le pire c'est que cela fonctionne en VB.net,
    mais le site est écrit en C#.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Essaies ça apparemment il n'aime pas SqlParameter mais plutôt Parameter :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    System.Web.UI.WebControls.Parameter.Parameter monParametre = new System.Web.UI.WebControls.Parameter.Parameter("nblignes", System.Data.DbType.Int32);
    monParametre.Direction = System.Web.UI.WebControls.ParameterDirection.Output;
    SqlDatasource.SelectParameters.Add(monParametre);

    Sinon peut-on avoir le lien vers le site d'où tu dis que cela marche avec VB sans problème ?

  5. #5
    Membre à l'essai
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 17
    Points : 23
    Points
    23
    Par défaut
    bonjour h2s84

    pour le lien ça va pas être possible, confidentailité oblige.(c'est un client)

    Par contre j'ai beau creuser, je ne trouve pas ce qui cloche,
    ou alors c'est ma prostock qui ne me renvoie pas le paramètre, ce qui est fou, car quand je la teste sous SQL elle fonctionne.
    Ou alors c'est du coté C# car quand je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    monLabel.text=monparatre.tostring();
    ou
    monLabel.text=SqlDatasource.SelectParameters["nbLignes"].tostring();
    Le résultat est le même monLabel.text Affiche "nbLignes"

    je vais essayer de travailler sur un petit bout de code et une requete plus simple on verra bien

  6. #6
    Membre à l'essai
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 17
    Points : 23
    Points
    23
    Par défaut
    Bonjour

    Alors apparement, si on utilise 2 select dans la même procédure stockée ça fonctionne coté SQL, mais C# n'aimerait pas trop.

    on remonte des datas, 1er select,
    puis on refait un select pour obtenir le nombre d'enregistrements total.
    et là, cela ne semble pas fonctionner, ce qui peut paraitre logique.
    on pourrait stocker le compteur en bout du dataset mais cette solution me parait crade.

    Pour résoudre mon problème, j'ai utilisé l'évènement Selected du Sqldatasource, et utilisé la propriété AffectedRows, c'est quand même beaucoup plus simple à mettre en oeuvre que de passer par une procèdure stockée avec paramètre etc.

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

Discussions similaires

  1. JasperServerPro 3.0.1: URL avec le paramètre output
    Par rvwhiti dans le forum Jasper
    Réponses: 0
    Dernier message: 10/09/2008, 11h34
  2. sqldatasource avec paramètre qui vaut null
    Par aurelien.tournier dans le forum ASP.NET
    Réponses: 4
    Dernier message: 17/01/2008, 11h56
  3. Réponses: 4
    Dernier message: 17/12/2007, 08h29
  4. SqlDatasource avec paramètre C#
    Par remy77 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 18/07/2007, 11h14
  5. SqlDataSource et paramètres
    Par yass dans le forum C#
    Réponses: 8
    Dernier message: 05/07/2007, 14h16

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