Instanciation d'une classe

Résolu
joujma5 Messages postés 152 Date d'inscription samedi 11 novembre 2006 Statut Membre Dernière intervention 5 décembre 2014 - 30 mai 2013 à 16:53
joujma5 Messages postés 152 Date d'inscription samedi 11 novembre 2006 Statut Membre Dernière intervention 5 décembre 2014 - 30 mai 2013 à 18:51
Bonjour,
j'ai une classe nommée class1 dans laquelle j'ai définie les variables connection string récupérés d'un fichier texte

Public chainePrint, chaineReg, chaine As String


avec le code suivant:

public instance as new class1

Private Sub MDIParent1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If My.Application.CommandLineArgs.Count > 0 Then
            Try
                ' Création d'une instance de StreamReader pour permettre la lecture de notre fichier
                Dim monStreamReader As StreamReader = New StreamReader(My.Application.CommandLineArgs(0))
                Dim ligne As String

                'Lecture de toutes les lignes et affichage de chacune sur la page
                'Dim server, basereg, basecom, baseprint, user, psw, integrated As String
                Dim x As Integer = 0
                Do

                    ligne = monStreamReader.ReadLine()
                    If x = 0 Then
                        server = ligne.Substring(9)
                    ElseIf x = 1 Then
                        user = ligne.Substring(6)
                    ElseIf x = 2 Then
                        psw = ligne.Substring(12)
                    ElseIf x = 3 Then
                        basecom = ligne.Substring(20)
                    ElseIf x = 4 Then
                        basereg = ligne.Substring(19)
                    ElseIf x = 5 Then
                        integrated = ligne.Substring(12)
                    End If
                    x = x + 1
                Loop Until ligne Is Nothing

                instance.chaineReg = "Data Source=" & server & "Initial Catalog=" & basereg & "Integrated Security=True"
                instance.chaine = "Data Source=" & server & "Initial Catalog=" & basecom & "Integrated Security=True"
                instance.chainePrint = "Data Source=" & server & "Initial Catalog=" & baseprint & "Integrated Security=True"
                'Fermeture du StreamReader (attention très important)
                monStreamReader.Close()

                
            Catch ex As Exception
                'Code exécuté en cas d'exception
                MsgBox(ex.Message)
            End Try
        
        End If
    End Sub


dans ma classe j'ai une public sub nommé
"Stat_Pointeur()" et c'est le départ du problème car lorsque j'instancie ma classe avec :
dim instance as new class1


et que je fais appel à la public sub "stat_pointeur" comme ça:
instance.stat_pointeur


le programme me retourne "la propriété connectionstring n'a pas été initialisé".
Quelqu'un a une idée comment remédier à ce problème.

9 réponses

Utilisateur anonyme
30 mai 2013 à 18:50
Par exemple :

sub new(byval machaine as string)
  chaine = machaine


ou :

public sub stat_pointeur(byval machaine as string)
cnx.connectionstring=machaine


ou :

Dim chaine as string = "...."


ou :
dim chaine as string
'...
sub new()
   chaine = ....
end sub
3
Bonjour joujma5.

Pourriez-vous donner le code de votre classe ?

Cordialement.

Étant illettré, je signe d'une croix : ×
0
joujma5 Messages postés 152 Date d'inscription samedi 11 novembre 2006 Statut Membre Dernière intervention 5 décembre 2014
30 mai 2013 à 18:02
public cnx as new sqlconnection
public chaineReg, chaine, chaineprint as string

public sub stat_pointeur()
cnx.connectionstring=chaine

try

cnx.open()


catch ex as exception
msgbox(ex)
end try
end sub
0
connectionstring est-elle une propriété de la classe sqlconnection ?


Étant illettré, je signe d'une croix : ×
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
joujma5 Messages postés 152 Date d'inscription samedi 11 novembre 2006 Statut Membre Dernière intervention 5 décembre 2014
30 mai 2013 à 18:29
normalement oui
0
joujma5 Messages postés 152 Date d'inscription samedi 11 novembre 2006 Statut Membre Dernière intervention 5 décembre 2014
30 mai 2013 à 18:32
lors de l’exécution la chaine est vide c'est à dire ne reçoit rien.
alors que dans autre cas si je fais pas recours à une instanciation de la classe (instance.methode) ça marche sans problème!!
0
Utilisateur anonyme
30 mai 2013 à 18:40
Salut,

C'est logique ta variable 'chaine' vaut Nothing lors de l'instanciation de ta classe. Il faut l'initialiser soit dans le constructeur de la classe, soit au niveau de sa déclaration, soit en passant une valeur en paramètre de ta sub.
0
joujma5 Messages postés 152 Date d'inscription samedi 11 novembre 2006 Statut Membre Dernière intervention 5 décembre 2014
30 mai 2013 à 18:45
comment ça banana32 ?
0
joujma5 Messages postés 152 Date d'inscription samedi 11 novembre 2006 Statut Membre Dernière intervention 5 décembre 2014
30 mai 2013 à 18:51
Merci
0
Rejoignez-nous