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 :

Creation d'un array


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 137
    Par défaut Creation d'un array
    Bonjour,


    J'ai une méthode qui demande 3 paramètres :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    iSession.Find(query as String, values() as Object, types() as NHibernate.Type.IType)
    De cette manière, cela fonctionne sans problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    myArrayList = iSession.Find("Select from ExWorksCls e where e.ExWorksDesc = :Texte and e.ExWorksActif = :Actif", New Object() {txt, False}, New NHibernate.Type.IType() {NHibernateUtil.String, NHibernateUtil.Boolean})
    J'aimerai bien "construire" les 2 derniers paramètres cad :

    New Object() {txt, False}

    et

    New NHibernate.Type.IType() {NHibernateUtil.String, NHibernateUtil.Boolean}

    Voilà comment je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Dim myArr As Array = Array.CreateInstance(GetType(Object), 2)
    myArr.SetValue(txt, 0)
    myArr.SetValue(True, 1)
     
    Dim myArr2 As Array = Array.CreateInstance(GetType(NHibernate.Type.IType), 2)
    myArr2.SetValue(NHibernateUtil.String, 0)
    myArr2.SetValue(NHibernateUtil.Boolean, 1)
    Jusque là tout va bien.

    Par contre, si je remplace New Object() {txt, False} par myArr

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    myArrayList = iSession.Find("Select from ExWorksCls e where e.ExWorksDesc = :Texte and e.ExWorksActif = :Actif", myArr, New NHibernate.Type.IType() {NHibernateUtil.String, NHibernateUtil.Boolean})
    J'ai une erreur de compilation :

    Error 2 Overload resolution failed because no accessible 'Find' can be called without a narrowing conversion:
    'Public Function Find(query As String, values() As Object, types() As NHibernate.Type.IType) As System.Collections.IList': Argument matching parameter 'values' narrows from 'System.Array' to '1-dimensional array of Object'.
    'Public Function Find(query As String, value As Object, type As NHibernate.Type.IType) As System.Collections.IList': Argument matching parameter 'type' narrows from '1-dimensional array of NHibernate.Type.IType' to 'NHibernate.Type.IType'.


    Où est l'erreur ?

    Merci d'avance.

    Gridin

  2. #2
    Membre émérite Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Par défaut
    Où est l'erreur ?
    La fonction attend un tableau d'object (object[]) et pas un type Array.

    Pourquoi se casser autant la tête?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    object[] param1 = New Object() {txt, False};
    object[] param2 = New NHibernate.Type.IType() {NHibernateUtil.String, NHibernateUtil.Boolean};
    myArrayList = iSession.Find("Select from ExWorksCls e where e.ExWorksDesc = :Texte and e.ExWorksActif = :Actif", param1, param2)
    Et si ton but est de pouvoir construire ton tableau dynamiquement à plusieurs endroits, fait plutot ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    List<Object> param1 = New List<Object>();
    List<Object> param2 = New List<Object>();
     
    param1.Add(txt);
    param1.Add(false);
     
    param2.Add(...);
    param2.Add(...);
     
    myArrayList = iSession.Find("Select from ExWorksCls e where e.ExWorksDesc = :Texte and e.ExWorksActif = :Actif", param1.ToArray(), param2.ToArray())

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 137
    Par défaut
    C'est pas du visual basic ca.

    Ca donne quoi en vb ?

    Merci


    Gridin

  4. #4
    Membre émérite Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Par défaut
    Citation Envoyé par gridin Voir le message
    Ca donne quoi en vb ?
    http://www.harding.edu/fmccown/vbnet...omparison.html

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 137
    Par défaut
    Ok ca marche super

    Merci


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
            Dim param1(1) As Object
            param1(0) = txt
            param1(1) = True
     
            Dim param2(1) As NHibernate.Type.IType
            param2(0) = NHibernateUtil.String
            param2(1) = NHibernateUtil.Boolean

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

Discussions similaires

  1. creation d'un array de string
    Par sdecorme dans le forum MATLAB
    Réponses: 2
    Dernier message: 20/09/2013, 07h40
  2. Creation d'un array multidimentionnel avec la reflection
    Par faldir dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 18/03/2010, 10h16
  3. Réponses: 3
    Dernier message: 18/03/2008, 10h54
  4. Creation tableau avec array
    Par Vascogil dans le forum SAS Base
    Réponses: 4
    Dernier message: 23/01/2008, 20h55
  5. [Tableaux] Création dynamique de tableau type array()
    Par Pahcixam dans le forum Langage
    Réponses: 7
    Dernier message: 29/11/2006, 14h34

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