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

Windows Forms Discussion :

j'aurais besoin d'un IServiceProvider pour avoir le requeteur SQL


Sujet :

Windows Forms

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut j'aurais besoin d'un IServiceProvider pour avoir le requeteur SQL
    bonjour

    le but final est d'ouvrir le générateur de requete SQL, si vous avez une autre méthode je suis preneur

    la méthode que j'ai trouvé, je bloque car j'ai besoin d'un IServiceProvider à donner en paramètre à une sub, mais je ne sais pas comment en obtenir un à l'exécution


    d'ailleurs il me faudrait une variable qui implémente IContainer, la aussi j'en trouve pas


    description plus complete :

    avec un componentmodel.editor sur un string, j'arrive à récupérer context et provider as IServiceProvider, que je donne ensuite à une sub d'une dll (via reflection) et ca m'ouvre le générateur de requete
    enfin ceci en mode design
    mais je voudrais pouvoir l'ouvrir en mode execution aussi

    extrait du code pour le mode design :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Public Class RQeditor
        Inherits System.Drawing.Design.UITypeEditor
     
     
        Public Overrides Function EditValue(ByVal context As System.ComponentModel.ITypeDescriptorContext, ByVal provider As  System.IServiceProvider, ByVal value As Object) As Object
     
     
             Dim ass As System.Reflection.Assembly
             ass = System.Reflection.Assembly.Load("Microsoft.VSDesigner, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")
    puis execution de la méthode
    EditValueInternal (context,sqlcommand,provider,value,0,False)

    une fois que ca marchera je pourrais poster le code complet !

  2. #2
    AP
    AP est déconnecté
    Membre confirmé
    Avatar de AP
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2002
    Messages : 480
    Points : 538
    Points
    538
    Par défaut
    tu n'as rien qui hérite de composant ou de control? tu peux te servir de ISite comme IServiceProvider. A verifier que cela fonctionne également quand tu n'es pas en designmode.

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    c'est bien le problème
    j'ai compris une partie de visual studio, il créé des Isite et des services
    mais en mode execution, les me.site et autre getservice me retourne du nothing
    pourtant l'objet propertygrid arrive à trouver des services en mode execution

    enfin j'ai bien peur qu'il y ait trop de choses bloquées
    j'ai pourtant réussi à avancer un peu

    si qqn est interressé par le requeteur pour le mode design je peux poster le reste du code

  4. #4
    AP
    AP est déconnecté
    Membre confirmé
    Avatar de AP
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2002
    Messages : 480
    Points : 538
    Points
    538
    Par défaut
    Une question bête, pourquoi tu veux faire cela au moment du runtime?

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    pour une appli qu'on peut faire évoluer sans l'arreter (elle doit fonctionner 24/24 et si possible 365/365)
    pouvoir changer les requetes d'un grid etc...

  6. #6
    AP
    AP est déconnecté
    Membre confirmé
    Avatar de AP
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2002
    Messages : 480
    Points : 538
    Points
    538
    Par défaut
    un peu de lecture:
    http://weblogs.asp.net/cazzu/archive...10/129140.aspx
    http://mikehadlow.blogspot.com/2006/...etservice.html

    Ca à l'air d'être possible mais je n'ai pas testé. Dans tous les cas, la réponse m'intéresse.

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    mouais ... j'sais pas trop quoi faire
    le code qui suit fonctionne parfaitement en mode design
    la classe est une classe d'éditor, à mettre en attribut avant une propriété de type string par exemple


    dans mes tests, si j'envoie nothing pour la variable context, ca marche quand meme
    par contre c'est la variable provider qu'il faudrait que j'arrive à constituer en mode execution pour que ca fonctionne



    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
        Public Class RQeditor
            Inherits System.Drawing.Design.UITypeEditor
     
     
            Public Overrides Function EditValue(ByVal context As System.ComponentModel.ITypeDescriptorContext, ByVal provider As System.IServiceProvider, ByVal value As Object) As Object
     
     
                Dim ass As System.Reflection.Assembly
                ass = System.Reflection.Assembly.Load("Microsoft.VSDesigner, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")
     
     
                Dim f As Object
                f = ass.CreateInstance("Microsoft.VSDesigner.Data.SQL.Design.SqlCommandTextEditor")
     
                Dim mth As System.Reflection.MethodInfo
                mth = f.GetType.GetMethod("EditValueInternal", Reflection.BindingFlags.Public Or Reflection.BindingFlags.NonPublic Or Reflection.BindingFlags.Instance)
     
     
     
                Dim connexion As New System.Data.SqlClient.SqlConnection(_chaine_de_connexion_a_utiliser)
     
     
                Dim cmd As New System.Data.SqlClient.SqlCommand("", connexion)
     
     
                Dim parameters(5) As Object
                parameters(0) = context ' context As ITypeDescriptorContext
                parameters(1) = cmd ' dbCommand As IDbCommand
                parameters(2) = provider ' provider As IServiceProvider
                parameters(3) = value ' value As Object
                parameters(4) = 0 ' cmdOperation As CommandOperation
                parameters(5) = False ' enableMorphing As Boolean
     
     
                Return mth.Invoke(f, parameters)
     
     
            End Function
     
     
            Public Overrides Function GetEditStyle(ByVal context As System.ComponentModel.ITypeDescriptorContext) As System.Drawing.Design.UITypeEditorEditStyle
                Return System.Drawing.Design.UITypeEditorEditStyle.Modal
            End Function
     
        End Class

Discussions similaires

  1. [Débutant] ''J'aurais besoins d'un code'' Pour ajouter un nouveau checkbox!
    Par MAA3870 dans le forum VB.NET
    Réponses: 2
    Dernier message: 11/03/2015, 18h59
  2. [XL-2010] J'aurais besoin d'un code pour pouvoir sélectionner une zone d'impression
    Par lolo57 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 01/11/2012, 16h55
  3. Demission : pour une premiere j'aurai besoin d'aide :)
    Par notalp dans le forum Démission
    Réponses: 4
    Dernier message: 29/08/2008, 11h06
  4. [réseaux] Bench en Perl pour avoir le débit entre 2 pc
    Par Frich dans le forum Programmation et administration système
    Réponses: 4
    Dernier message: 22/05/2002, 17h22

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