Duplication d'éléments récupérés depuis la base
Bonjour,
Je fais présentement un site en ASP.net VB.NET. Je vais vous montrer le code que j'utilise et après vous dire qu'est-ce qui ne fonctionne pas.
Code de la classe LangueProvider.vb :
Code:
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
| Imports Microsoft.VisualBasic
Imports System.Data.SqlClient
Imports langue
Imports GlobalFunction
Public Class langueProvider
Public Shared Sub LoadLangue(ByRef langues As ArrayList, ByVal strLangue As String)
Dim strSQL As String
Dim mySQL As SqlCommand
Dim mdt As SqlDataReader
Dim langue As New langue
strSQL = "SELECT * FROM [LANGUE] WHERE ([LANGUE] = '" & strLangue & "') ORDER BY [ID]"
mySQL = New SqlCommand(strSQL, GlobalFunction.ConnectionOpen)
mdt = mySQL.ExecuteReader()
While mdt.Read()
langue = New langue
langue.id = mdt("ID")
langue.langue = mdt("LANGUE")
langue.text = mdt("TEXT")
langues.Add(langue)
End While
GlobalFunction.ConnectionClose()
End Sub
End Class |
Code de la classe LangueBusiness :
Code:
1 2 3 4 5 6 7 8 9
| Imports Microsoft.VisualBasic
Imports langue
Imports langueProvider
Public Class LangueBusiness
Public Sub getLangue(ByRef langues As ArrayList, ByVal strLangue As String)
LoadLangue(langues, strLangue)
End Sub
End Class |
Code de la page aspx.vb :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim langues As New ArrayList
Dim langueBusiness As New LangueBusiness
langueBusiness.getLangue(langues, "FR")
If langues.Count = 0 Then
Me.TextBox1.Text = "Aucune langue"
Else
Me.TextBox1.Text = langues(0).text & langues(1).text
End If
End Sub
End Class |
Le résultat de la requête SQL est :
Code:
1 2 3
|
1 FR Bienvenue
2 FR Au REVOIR |
Mais quand j'ouvre la page aspx, il m'affiche dans mon textbox AU REVOIRAU REVOIR. Au lieu d'avoir 2 objets différents dans ma arraylist, j'ai 2 objets pareil... Je pense que ca doit être la classe LangueProvider le problème mais je ne vois tout simplement pas l'erreur.
Merci
P.S. Oui je le fais en architecture 3-tier