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

ASP.NET Discussion :

Souci de compréhension des sqlparameter


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut Souci de compréhension des sqlparameter
    Bonjour à tous.

    J'ai implémenté mes requêtes avec des SqlParameter mais je crois que j'ai zappé un détail.
    Voici un code de test qui ne fonctionne pas mais j'ai du mal à comprendre le message d'erreur que j'ai en retour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    Dim LParam(1) As SqlParameter
            LParam(0) = New SqlParameter("Urlsite", Request.Url.Host)
     
            Dim oConnex As New SqlConnection(ConfigurationManager.ConnectionStrings("DataDev").ConnectionString)
            Dim str As String = ""
            Try
                Dim Table As New DataTable
                Dim oCommand As New SqlCommand("EXEC CORE_VerifSiteExiste @Urlsite")
                Dim Adapteur As New SqlDataAdapter(oCommand)
                Dim oCommandBuilder As New SqlCommandBuilder(Adapteur)
                Logage("1")
                oConnex.Open()
                Logage("2")
                oCommand.Parameters.AddRange(LParam)
                Logage("3")
                Adapteur.Fill(Table)
                Logage("4")
                If Table.Rows.Count = 0 Then
                    Logage("5")
                    str = ""
                Else
                    Logage("6")
                    str = Table.Rows(0).Item(0)
                End If
            Catch ex As Exception
                ProjetY.Outils.Logage(ex.Message)
                ProjetY.Outils.Logage("EXEC CORE_VerifSiteExiste @Urlsite")
            Finally
                oConnex.Close()
            End Try
     
            Response.Write(str)
    il va jusqu'à logage(2) et aprés il plante sur l'ajout des paramètres avec le message suivant :
    SqlParameterCollection accepte uniquement des objets de type SqlParameter non null.
    Nom du paramètre*: value
    J'ai bien relu la MSDN et je ne vois pas où je me suis planté.
    Vous pouvez m'aider ?

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Quand tu écris ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim LParam(1) As SqlParameter
    Ca crée un tableau de 2 éléments et non pas 1, parce qu'en VB on spécifie la borne supérieure et non le nombre d'éléments (ce qui est complètement débile d'ailleurs... enfin tu connais mon amour inconditionnel pour VB )

    Comme tu n'initialises que le 1er élément, ton tableau contient un SqlParameter et un null (Nothing), donc quand tu essaies d'ajouter tous les éléments du tableau, ça pète parce qu'il y en a un qui est null.

    De toutes façons, vu qu'il n'y a qu'un paramètre, tu n'as pas besoin de passer par un tableau... tu peux créer simplement un SqlParameter et l'ajouter avec Add au lieu de AddRange

  3. #3
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci tomlev

    Bon, donc j'ai confondu la borne et le nombre d'élément.
    Super cool, je dois repasser sur plus de 500 requêtes !!!!

    Je passe pas un tableau parce que, en vrai, c'est une fonction qui fait le retour de requête et elle attend un talbeau de SqlParameter, c'est tout.

    J'aurais cru qu'il ignorerait les paramettres vides.

    Merci pour le coup de main.

  4. #4
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Ehu, souci par dessus le problème, mais là encore, je capte pas.
    Depuis que je suis passé au SqlParameter, j'ai pas mal de souci, mais al sécurité m'y oblige.

    Donc j'ai changé le nombre pour avoir le borne supérieure et pas le nombre de paramettres.
    Mais là il bloque sur le fill avec le message d'erreur suivant :
    Fill : la propriété SelectCommand.Connection n'a pas été initialisée.
    Et je comprends pas où il veut que j'initialise la connexion, je le fais déjà au dessus.

  5. #5
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    oCommand.Connexion = oConnex

  6. #6
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci lutecefalco

    j'ai tellement modifié ma fonction que je sais plus où j'en suis.

    Bonne journée

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/02/2013, 21h44
  2. Réponses: 9
    Dernier message: 23/08/2011, 10h18
  3. [XL-97] Filtre avec VBA : Des Soucis de compréhension
    Par Kalimera18 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/05/2009, 20h51
  4. Problème de compréhension des ensembles
    Par Cornell dans le forum Langage
    Réponses: 6
    Dernier message: 07/02/2003, 22h07
  5. Réponses: 2
    Dernier message: 03/10/2002, 17h24

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