[déplacé C# -> ASP.NET] Entity Framework

cs_eyango Messages postés 45 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 30 janvier 2014 - 24 sept. 2012 à 16:44
cs_eyango Messages postés 45 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 30 janvier 2014 - 25 sept. 2012 à 16:06
Bonjour tous,
j'utilise Visual studio 2010 je souhaite afficher les résultats de ma recherche dans des textbox
voici mon code:

/*Retourne les codes pret propre à un matricule*/
public int GetCodPreByMatr(string Matr)
{
using (MyDatabaseEntities MD = new MyDatabaseEntities())
{
Pret p = (from x in MD.Pret
where (x.Matricule == Matr)
select x).FirstOrDefault();
if (p == null)
return 0;
return p.CodePret;
}
}

/*Affiche les codes pret dans un textBox*/
public void RechercherButton_Click(object sender, EventArgs e){
CodePretText.Text = GetCodPreByMatr(MatriculeText.text);
}

jusqu'ici ça va.. mais quand il y'a plusieurs code pret pour un matricule, j'ai prévu deux boutons "Previous"(enregistrement précédent) et "Next"(enregistrement suivant)
Comment implémenter ces méthodes????

/*Passe à l'enregistrement Précédent*/
protected void PreviousButton_Click(object sender, EventArgs e){
....?????
}

/*Passe à l'enregistrement Suivant*/
protected void NextButton_Click(object sender, EventArgs e){
....?????
}


Merci

8 réponses

cs_L0ci Messages postés 224 Date d'inscription vendredi 26 novembre 2010 Statut Membre Dernière intervention 11 juin 2013 7
24 sept. 2012 à 17:06
Bonjour,

tu pourrais enlever .FirstOrDefault() pour récupérer une List (.toList()) ou un IEnumerable.
Si List.Count > 0 tu renvoies la liste sinon tu renvois 0.
Il suffirait ensuite d'afficher par défaut List[0].

Dans la méthode suivant tu fais index++ et dans la méthode précédant index--.
0
Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 656
24 sept. 2012 à 21:02
Bonsoir, en complément de LOci une fois que tu as une List (.toList devrait marcher aussi) tu peux utiliser le binding pour afficher dans la plupart des contrôles


Whismeril
0
cs_eyango Messages postés 45 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 30 janvier 2014
25 sept. 2012 à 13:11
Bonjour LOci,Whismeril,
je crois que je me perd un peu dans vos explications... voici ce que je fais:

public List<Pret> ListerPretByMat(string Matr)
{
using (MyDatabaseEntities MD = new MyDatabaseEntities())
{
return (from x in MD.Pret
where (x.Matricule == Matr)
select x).ToList();
}
}

mais pour la suite à savoir l'affichage et les méthodes "précédent" et "suivant" je suis complètement out...
SVP éclairer moi d'avantage...
0
cs_L0ci Messages postés 224 Date d'inscription vendredi 26 novembre 2010 Statut Membre Dernière intervention 11 juin 2013 7
25 sept. 2012 à 13:20
Bonjour,

Une fois que tu as ta liste, tu va sélectionner l'élément à afficher vie un index. En gros:
 Pret monPret = List[0];
Ici monPret aura la valeur du premier élément de ta liste.
Maintenant pour afficher l'élément suivant il suffira de récupérer
List[1]
Donc ton index +1. Pareil pour l'élément précédent qui sera ton index-1;

Il suffit donc dans tes fonctions suivant et précédent d'actualiser l'objet affiché en récupérant un autre objet dans ta liste. Si tu veux plus de détails, décris nous comment tu affiches l'objet (winforn/wpf/databinding...)
0

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

Posez votre question
cs_eyango Messages postés 45 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 30 janvier 2014
25 sept. 2012 à 15:06
Merci d'être disponible LOci...
tout d'abord est ce que ma méthode a sa place??
si oui... quand tu écris
Pret monPret = List<Pret>[0];

que représente "List" dans mon code?? car pour moi j'ai l'impression que "List" est comme un type qui retourne une collection d'enregistrement de la table ... si je me goure merci de m'éclairer....

au fait je débute dans le concept d'entity framework (d'où mes interroguations)
c'est une appli web donc l'objet (winform/wpf/databinding) ne fait pas partie de mes plans..


stp oriente moi en fonction de ce que j'écris dans mon code...

Merci
0
cs_eyango Messages postés 45 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 30 janvier 2014
25 sept. 2012 à 15:08
stp peux tu me donner un bout de code qui fait ce que je demande??
0
cs_L0ci Messages postés 224 Date d'inscription vendredi 26 novembre 2010 Statut Membre Dernière intervention 11 juin 2013 7
25 sept. 2012 à 15:20
Salut,

Alors je suis pas un super spécialiste d'asp.net donc je vais peut être dire des bêtises (d'ailleurs c'est la bas qu'il aurai fallu poster)

D'après moi ça va fonctionner ainsi: (+ ou -)
1. Tu va récupérer tes prêts depuis ta base de données. Ces prêts sont contenus dans un objet List, défini dans ton code c#.
2. Tu va afficher sur ta page 1 seul prêt. Donc un seul élément de ta liste. Il faut envoyer à ta page html une valeur de la liste (ex
List[0])
3. Quand l'utilisateur clique sur suivant, au lieu de faire une nouvelle requête dans ta base, tu lui renvoi simplement l'objet suivant dans la liste (ici List[1]) si il existe.

Par contre attention. Si tu es en appli web ça va fonctionner seulement si ta liste n'est pas trop importante. Si y'a 10000 lignes et qu'il y a 20 utilisateurs en même temps...

Je viens de voir ton dernier message. En c# appli client j'aurai pu t'aider plus mais la il faut demander à qqun d'autre
0
cs_eyango Messages postés 45 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 30 janvier 2014
25 sept. 2012 à 16:06
tu peux m aider car c'est grace a du C# que j attaque ma BD... c est pour ça que j ai posté ici en fait...

comment récupérer les infos de ma liste et l'afficher dans mes textbox(textbox1, textbox2, textbox3)
par exemple j ai une table: Pret(codePret, LibellePret, Matricule)???(stp un bout de code question de voir comment tu ferais...)
0
Rejoignez-nous