Datatable

caroliina Messages postés 42 Date d'inscription mercredi 14 décembre 2005 Statut Membre Dernière intervention 28 novembre 2006 - 26 déc. 2005 à 18:44
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 - 28 déc. 2005 à 17:43
Bonsoir tt le monde et
Bonne Annee a tous
:),
d'habitude quand je veux faire une recherche d'une ligne dans une table, je fais une recherche a l'aide d'une boucle for ou autres.
mais je veux savoir si il existe une methode qui me permet de parcourir toutes les lignes de la table en VB.Net.
metci d'avance.

5 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
26 déc. 2005 à 22:00
Salut

Pour n'envoyer qu'une seul ligne d'une datatable.
Il faut utilisé une requete

ou la methode select de la datatable

exemple
Dim dtr as datarow() = madatable.select("id=" + num_id )
if dtr.lentgth = 0 then
pas d'enregistrement
else id dtr.length = 1 then
un seul enregistrement OK

return directcast(dtr(0),Personne) 'on conciderant que tu travaille avec des personnes ;-)

else '> 1
plus d'un enregistrement ou KO on fonction du traitement
end if


le select un puissant car tu peux faire des datacolums expression
du genre like, substring, parent, child ....
vas voir msdn pour cela datacolumnexpression

et le deuxieme paramètre est l'ordre de sortie
ex dernier traitemement ressuit string.empty,"DATE_FIN DESC"

C'est tres puissant et dans c#3 ca le sera encore plus ;-)

Bonne programmation
0
caroliina Messages postés 42 Date d'inscription mercredi 14 décembre 2005 Statut Membre Dernière intervention 28 novembre 2006
28 déc. 2005 à 11:43
bonjour,
merci pr votre aide , sauf que j'ai tjrs un ptit prob.
je cree une fonction :



Function recherche()



Dim dtr
As DataRow() = mytable.Select("numreservation=" & 2)



If dtr.Length = 0
Then


MsgBox("il n'y a pa d'enregistrement correspendant")



ElseIf dtr.Length = 1
Then



Return
DirectCast(dtr(0), reservation)



End
If



End
Function

et je l'execute qd je click sur un boutton comme suit:


Sub Button1_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Button1.Click


TextBox1.Text = recherche.ToString



End
Sub


alors là, il me lance un message d'erreur.
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
28 déc. 2005 à 14:14
Salut,

Ok ici tu as un probleme de construction.


public Function recherche(byval pNum_resa as int32, byref pReservation as reservation) as string

Dim dtr As DataRow() = mytable.Select("numreservation=" & pNum_resa)

If dtr.Length = 0 Then

MsgBox("il n'y a pa d'enregistrement correspendant")
Return String.empty

ElseIf dtr.Length = 1 Then

pReservation = DirectCast(dtr(0), reservation)
Return pReservation.nom 'un string
End If

End Function


Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim resa as reservation
TextBox1.Text = recherche(2,resa)

'tu peux ensuite travaillé sur l'objet resa directement
'c'est un parametre de sortie
'textbox1.text = vide si pas d'enregistrement
'textbox1.text = nom resa sinon

le plus propre c'est
Dim resa as reservation
recherche(2,resa) 'pas de fonction mais une méthode
ou
resa = Reservation.recherche(2) 'En function statique la c'est la top.
ou
Reservation.recherche(2,resa) 'en methode statique de la classe reservation

TextBox1.Text = resa.nom

End Sub

C'est comme tu le sens, il faut s'habituer à la programmation objet ;-)
0
caroliina Messages postés 42 Date d'inscription mercredi 14 décembre 2005 Statut Membre Dernière intervention 28 novembre 2006
28 déc. 2005 à 15:02
merci,
mais au niveau de la ligne:
pReservation = DirectCast(dtr(0), reservation)
il me lance le message : "le cast specifié non valide".
0

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

Posez votre question
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
28 déc. 2005 à 17:43
Excuse,

C'est un transtypage, que tu ne peux pas utiliser.
C'est utilisé dans un framework particulier.

pReservation = dtr(0) --> 'c'est ici un datarow

ctype(dtr(0).item("nom_resa" ),string) --> 'access à un élément

devrait mieux fonctionner

Amuses toi bien
0
Rejoignez-nous