Accueil > Forum > > > > Pb de recopie d'objet, incompréhensible ...
Pb de recopie d'objet, incompréhensible ...
jeudi 28 juillet 2005 à 09:05:34 |
Pb de recopie d'objet, incompréhensible ...

julien31
|
Bonjour, Je programme un site Web en asp.net. J'ai une classe Article.vb. Lorsque je fais un appel comme ci-dessous, l'article est chargé normalement : Dim 1er_article As Article = New Article(idArticle) Le problème est que si je déclare un second article différent, il se recopie automatiquement dans le premier article Dim 2nd_article As Article = New Article(autre_idArticle) // 2nd article est recopié ds 1er article Si vous avez une idée... Merci d'avance
|
|
jeudi 28 juillet 2005 à 14:09:08 |
Re : Pb de recopie d'objet, incompréhensible ...
|
jeudi 28 juillet 2005 à 14:17:34 |
Re : Pb de recopie d'objet, incompréhensible ...

julien31
|
Merci d'avoir répondu !
Il se recopie veut dire : quand j'instancie "2nd_article" il est recopié dans "1er_article".
On dirait qu'il fait 1er_article = 2nd_article
Ma classe article est simple pourtant ...
Voici le code si ça peut t'aider :
Namespace eFitness Public Class Article Inherits System.ComponentModel.Component Public Shared idArticle, fk_fournisseur, fk_generique As Integer Public Shared nom, descriptif_court, descriptif_long, livraison, garantie As String Public Shared ref, photo1, photo2, descSuc, descriptif, param1, param2 As String Public Shared pvHT As Decimal Public Shared paHT As Double Public Shared tva As Double Public Shared remise As Double Public Shared stock_limite As Integer # Region " Code généré par le Concepteur de composants " Public Sub New(ByVal Container As System.ComponentModel.IContainer, ByVal id_article As Integer) MyClass.New(id_article) 'Requis pour la prise en charge du Concepteur de composition de classes Windows.Forms Container.Add( Me) End Sub Public Sub New(ByVal id_article As Integer) MyBase.New() 'Cet appel est requis par le Concepteur de composants. InitializeComponent() 'Ajoutez une initialisation de l'article après l'appel InitializeComponent() Dim myConnection As New Data.SqlClient.SqlConnection(getConnString) Dim sql As String = "Select * From article Where id_article=" & id_article Dim myCommand As New Data.SqlClient.SqlCommand(sql, myConnection) myConnection.Open() Dim myReader As Data.SqlClient.SqlDataReader myReader = myCommand.ExecuteReader() If myReader.Read() Then nom = myReader.GetString(2) idArticle = id_article ref = myReader.GetString(1) nom = myReader.GetString(2) If Not myReader.IsDBNull(8) Then descSuc = myReader.GetString(8) Else descSuc = "" If Not myReader.IsDBNull(9) Then descriptif = myReader.GetString(9) Else descriptif = "" fk_fournisseur = myReader.GetInt32(4) If Not myReader.IsDBNull(5) Then fk_generique = myReader.GetInt32(5) Else fk_generique = 0 If Not myReader.IsDBNull(6) Then param1 = myReader.GetValue(6) Else param1 = "" If Not myReader.IsDBNull(7) Then param2 = myReader.GetValue(7) Else param2 = "" If Not myReader.IsDBNull(10) Then photo1 = myReader.GetString(10) Else photo1 = "Aucune" If Not myReader.IsDBNull(11) Then photo2 = myReader.GetValue(11) Else photo2 = "Aucune" If Not myReader.IsDBNull(12) Then paHT = myReader.GetDouble(12) Else paHT = 0 If Not myReader.IsDBNull(13) Then pvHT = myReader.GetValue(13) Else pvHT = 0 If Not myReader.IsDBNull(14) Then tva = myReader.GetValue(14) Else tva = 0 If Not myReader.IsDBNull(15) Then remise = myReader.GetValue(15) Else remise = "" If Not myReader.IsDBNull(18) Then livraison = myReader.GetValue(18) Else livraison = "" If Not myReader.IsDBNull(19) Then garantie = myReader.GetValue(19) Else garantie = "" If Not myReader.IsDBNull(20) Then stock_limite = myReader.GetValue(20) Else stock_limite = "" End If myConnection.Close() End Sub 'La méthode substituée Dispose du composant pour nettoyer la liste des composants. Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub 'Requis par le Concepteur de composants Private components As System.ComponentModel.IContainer 'REMARQUE : la procédure suivante est requise par le Concepteur de composants 'Elle peut être modifiée à l'aide du Concepteur de composants. 'Ne la modifiez pas en utilisant l'éditeur de code. <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() components = New System.ComponentModel.Container End Sub # End Region '------------------------DEBUT DES ACCESSEURS------------------------- 'retourne le connectionString utilisé par les autres méthodes partagées Public Shared Function getConnString() As String Dim retour As String retour = ConfigurationSettings.AppSettings("gecoserv") Return retour End Function 'retourne l'id de l'article Public Shared Function getNumArticle() As Integer Return idArticle End Function 'retourne le nom de l'article Public Shared Function getNom() As String Return nom End Function 'retourne vrai si l'article est en stock milite Public Shared Function StockLimite() As Boolean If stock_limite = 1 Then Return True Else Return False End If End Function 'retourne l'id de l'article Public Shared Function getDescriptifCourt() As String Return descSuc End Function 'retourne l'id de l'article Public Shared Function getDescriptifLong() As String Return descriptif End Function 'retourne un Dataset représentant la table entière Public Shared Function getRef() As String Return ref End Function 'retourne le nom de l'article Public Shared Function getLivraison() As String Return livraison End Function 'retourne le nom de l'article Public Shared Function getGarantie() As String Return garantie End Function 'retourne un Dataset représentant la table entière Public Shared Function getPrixVenteHT() As String Return pvHT End Function 'retourne un Dataset représentant la table entière Public Shared Function getPrixAchatHT() As String Return paHT End Function 'retourne la tva Public Shared Function getTva() As String Return tva End Function Public Shared Function getRemise() As String Return remise End Function Public Shared Function getGrandePhoto() As String Return photo2 End Function Public Shared Function getPetitePhoto() As String Return photo1 End Function 'retourne l'ancien prix du produit sans la remise... Public Shared Function getPrixTTCSansRemise() As String Return FormatNumber(Article.getPrixVenteHT() * (1 + (Article.getTva() / 1000)), 2) End Function 'retourne le prix du produit TTC avec remise si necessaire Public Shared Function getPrixVenteTTC() As String Dim remise As Integer Dim prixTTC As Decimal 'on regarde si c une remise... If Convert.ToInt32(Article.getRemise()) > 0 Then 'on calcule le nouveau prix prixTTC = FormatNumber(getPrixTTCSansRemise() * (1 - (getRemise() / 100)), 2) Else prixTTC = FormatNumber(getPrixVenteHT() * (1 + (getTva() / 1000)), 2) End If Return prixTTC End Function '------------------------FIN DES ACCESSEURS------------------------- 'redéfinition de l'opérateur = Public Overloads Shared Function equals(ByVal a As Article) As Boolean If idArticle = a.getNumArticle Then Return True Else Return False End If End Function Public Shared Function getOptionRecommande() As DataSet ' on recherche les options d'un produit Dim SQL As String = "Select * From article Where id_article=" & idArticle '"SELECT id_article, nom, descSuc from Article INNER JOIN Article_option ON article.id_article = Article_option.fk_option WHERE Article_option.fk_article=" & idArticle & " AND valide=1" Dim oDA As New Data.SqlClient.SqlDataAdapter(SQL, getConnString) Dim oDS As New DataSet oDA.Fill(oDS) oDA.Dispose() Return oDS End Function Public Shared Function getComplementaire() As DataSet ' on recherche les options d'un produit Dim SQL As String = "SELECT fk_complement from Article INNER JOIN article_complement ON id_article = fk_article WHERE id_article=" & idArticle & " AND valide=1" Dim oDA As New Data.SqlClient.SqlDataAdapter(SQL, getConnString) Dim oDS As New DataSet oDA.Fill(oDS) oDA.Dispose() Return oDS End Function Public Shared Function getGenerique() As DataSet ' on recherche les options d'un produit Dim SQL As String = "select fk_generique, param1, param2 from article where id_article=" & idArticle & " AND valide=1" Dim oDA As New Data.SqlClient.SqlDataAdapter(SQL, getConnString) Dim oDS As New DataSet oDA.Fill(oDS) oDA.Dispose() Return oDS End Function Public Shared Function getParametres() As DataSet ' on recherche les options d'un produit Dim SQL As String = "select id_article, param1, param2 from article where fk_generique=" & idArticle & " AND valide=1" Dim oDA As New Data.SqlClient.SqlDataAdapter(SQL, getConnString) Dim oDS As New DataSet oDA.Fill(oDS) oDA.Dispose() Return oDS End Function Public Shared Sub setArticle(ByVal id_article As Integer) Dim myConnection As New Data.SqlClient.SqlConnection(getConnString) Dim sql As String = "Select * From article Where id_article=" & id_article Dim myCommand As New Data.SqlClient.SqlCommand(sql, myConnection) myConnection.Open() Dim myReader As Data.SqlClient.SqlDataReader myReader = myCommand.ExecuteReader() If myReader.Read() Then nom = myReader.GetString(2) idArticle = id_article ref = myReader.GetString(1) nom = myReader.GetString(2) If Not myReader.IsDBNull(8) Then descSuc = myReader.GetString(8) Else descSuc = "" If Not myReader.IsDBNull(9) Then descriptif = myReader.GetString(9) Else descriptif = "" fk_fournisseur = myReader.GetInt32(4) If Not myReader.IsDBNull(5) Then fk_generique = myReader.GetInt32(5) Else fk_generique = 0 If Not myReader.IsDBNull(6) Then param1 = myReader.GetValue(6) Else param1 = "" If Not myReader.IsDBNull(7) Then param2 = myReader.GetValue(7) Else param2 = "" If Not myReader.IsDBNull(10) Then photo1 = myReader.GetString(10) Else photo1 = "Aucune" If Not myReader.IsDBNull(11) Then photo2 = myReader.GetValue(11) Else photo2 = "Aucune" If Not myReader.IsDBNull(12) Then paHT = myReader.GetDouble(12) Else paHT = 0 If Not myReader.IsDBNull(13) Then pvHT = myReader.GetValue(13) Else pvHT = 0 If Not myReader.IsDBNull(14) Then tva = myReader.GetValue(14) Else tva = 0 If Not myReader.IsDBNull(15) Then remise = myReader.GetValue(15) Else remise = "" If Not myReader.IsDBNull(18) Then livraison = myReader.GetValue(18) Else livraison = "" If Not myReader.IsDBNull(19) Then garantie = myReader.GetValue(19) Else garantie = "" If Not myReader.IsDBNull(20) Then stock_limite = myReader.GetValue(20) Else stock_limite = "" End If myConnection.Close() End Sub End Class End Namespace
|
|
jeudi 28 juillet 2005 à 14:24:56 |
Re : Pb de recopie d'objet, incompréhensible ...

Nurgle
|
Réponse acceptée !
bon...je viens de comprendre le problème : toutes tes variables et/ou méthodes sont "Shared" !! Je te rapelle que "Shared" veut dire "static" !, c'est à dire que ces variables et/ou fonctions ne sont pas propre à chaque objet que tu instancie !! (il n'y en a qu'une pour toutes les instances de la classe, donc si une instance modifie une variable, l'autre aussi verra sa variable modifié, vu que c'est la même variable !) Je sais pas si j'ai été très clair, et je n'ai pas parcouru tout ton code, mais tu devrais enlever tous ces "Shared" ! ça devrait éviter ce genre de problème. "Shared" sert à utiliser une méthode et/ou variable sans instance de la classe : tu n'en n'a pas besoin ici !   Nurgle Il est plus aisé d'être sage pour les autres que pour soi-même !
|
|
Cette discussion est classée dans : pb, objet, recopie, article, incompréhensible
Répondre à ce message
Sujets en rapport avec ce message
Pb avec objet session -Session.Contents.Remove [ par Fabrice ]
J ai un message d erreur Windows Vbscriptquand je cherche a effacer une variable Session.Contents.Remove("var")Cela ne fontionne pas , j ai une erreur
PB SMARTUPLOAD ACTIVEX [ par tirane ]
ON a un message d'erreur des la declaration d'un objet smartupload :"Un composant ActiveX ne peut pas créer un objet. /multi_client_admin/soc_exec_SA.
:: Creation dynamique d'objet et de propriétés :: [ par philamiot ]
Bonjour, J'ai un probleme avec VBSCRIPT et ASP. j'aimerais pouvoir créer des objets et leurs propriétés de facon dynamique :J'ai une class "article" (
Pb AspSmartUpload [ par ayor1107 ]
Bonjour, j'ai un pb d'utilisation avec le composant smartuploadje fais l'install comme c'est indiqué dans la doc, mais quand je vaut tester l'upload d
p'tit pb [ par benj71 ]
Voila je ne suis pas tres doué en asp et j'ai un petit pb. Pour mon site marchand, j'affiche ma bdd avec ref, article, prix, ... et qd je clique sur p
p'tit pb [ par benj71 ]
Voila je ne suis pas tres doué en asp et j'ai un petit pb. Pour mon site marchand, j'affiche ma bdd avec ref, article, prix, ... et qd je clique sur p
Pb Objet Com Avec ASP.net [ par zakfunk ]
bonjour,j'essai d'utiliser un objet com avec mon application Asp.net mais ça ne marche pas il n'y a même pas de message d'erreur (ça rame !!!)par cont
pb accès fichier sous ASP [ par hikker ]
bonjour,je voudrais ecrire dans un fichier texte, en asp mais j'ai le pb suivant : le controle de la présence d'un fichier marche (avec l'objet server
Pb avec le composant ASPEXEC [ par cracozore ]
Bonjour à tous,J'ai un problème quand je fait apel au composant AspExec, j'obtiens ce message d'erreur :"Type d'erreur :Objet Server, ASP 0178 (0x8007
Pb sur l'article 119 de Nix sur UPLOAD !!! [ par barzy ]
j'ai installé les fichiers sur IIS5 et lorsque j'envoie le formulaire, ça mouline encore et encore.Est-ce quelqu'un à eu le pb car je ne vois pas d'ou
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|