Linq et toList()

Signaler
Messages postés
6
Date d'inscription
lundi 15 juin 2009
Statut
Membre
Dernière intervention
4 décembre 2009
-
Messages postés
6
Date d'inscription
lundi 15 juin 2009
Statut
Membre
Dernière intervention
4 décembre 2009
-
Bonjour,
(je veux remplir un GridView j'utilise Linq avec un service WCF)
Moi j'ai un petit Problème presque du même type:
Je veux avoir en resultat une GridView qui se rempli avec que 4 colonnes d'une table qui en contient 8...(J'espère voir été claire.)

public List<string> Email()
{
LinqDataContext dc = new LinqDataContext();

var V = (from Adresse in dc.Annonces
select string.Format("{0}-{1}-{2}-{3}", Adresse.Ann_Email, Adresse.Ann_Prix, Adresse.Ann_CodePostal, Adresse.Ann_Ville));
return V.ToList();
}

Avec cette méthode je remplis ma DataGrid qu'avec 1 Colone nommée string.
Comment réaliser quelque chose qui abouti à une gridView correctement remplit...

Je vous en remercie d'avance.

11 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
Salut


Voici un exemple

using System;
using System.Linq;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public class AdresseP 
    {
        public string Rue { get;  set; }
        public string Cp { get; set; }
        public string Ville { get; set; }

        public AdresseP(string aRue, string aCp, string aVille) 
        {
            this.Rue = aRue;
            this.Cp = aCp;
            this.Ville = aVille;
        }
 
    }
    
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        private void button1_Click(object sender, EventArgs e)
        {
            var db = new DataClasses1DataContext();
            var q = from a in db.Adresses
                    select new AdresseP(a.Rue,a.Cp,a.Ville);

            dataGridView1.DataSource = q.ToList();

        }
    }
}


Bon dev
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
Il est possible de passer par une constructeur dans la classe Adresse aussi qui sort
du modele linq

 
 public partial class Adresse
    {
   
        public Adresse(string aRue, string aCp, string aVille) 
        {
            this.Rue = aRue;
            this.Cp = aCp;
            this.Ville = aVille;
        }
 
    }


Sinon il faut passer par les types anonymes

 var db = new DataClasses1DataContext();
            var q = from a in db.Adresses
                    select new { a.Rue, a.Cp, a.Ville };
            dataGridView1.DataSource = q.ToList();


Les 3 bouts de programme donne le même résultat
Messages postés
6
Date d'inscription
lundi 15 juin 2009
Statut
Membre
Dernière intervention
4 décembre 2009

Oui mais en passant par un Iservice.cs
[OperationContract]
List<string> Email();
et dans mon fichier service.Svc.cs

LinqDataContext dc = new LinqDataContext();

var V = (from Adresse in dc.Annonces
select string.Format("{0}-{1}-{2}-{3}", Adresse.Ann_Email, Adresse.Ann_Prix, Adresse.Ann_CodePostal, Adresse.Ann_Ville));
return V.ToList();

Pouvez vous me l'arranger de avec cette méthode... Merci
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
Je ne comprends pas ce que tu cherches.
Messages postés
6
Date d'inscription
lundi 15 juin 2009
Statut
Membre
Dernière intervention
4 décembre 2009

En fait je fais des essaie en silverlight, avec Linq et j'utilise le service Wcf...
C'est pour cela que je declare dans le fichier interface
" [OperationContract]
List<string> Email(); "

et dans le fichier service
"LinqDataContext dc = new LinqDataContext();

var V = (from Adresse in dc.Annonces
select string.Format("{0}-{1}-{2}-{3}", Adresse.Ann_Email, Adresse.Ann_Prix, Adresse.Ann_CodePostal, Adresse.Ann_Ville));
return V.ToList();
"
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
Avec
[OperationContract]
List Email();


Ca doit passer?
Messages postés
6
Date d'inscription
lundi 15 juin 2009
Statut
Membre
Dernière intervention
4 décembre 2009

En fait ce n'est pas adresse? c'est Annonce la table... A moins que j'ai tord
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
Ah oui désolé alors

[OperationContract]
List Email();
Messages postés
6
Date d'inscription
lundi 15 juin 2009
Statut
Membre
Dernière intervention
4 décembre 2009

je serais chiant... Et dans le fichier service on aura quoi???

public List Email()
{
LinqDataContext dc = new LinqDataContext();
var V = (from Adresse in dc.Annonces select string.Format(Adresse.Ann_Email, Adresse.Ann_Prix));
return V.ToList();
}
mais avec ça j'ai une erreur
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
[mode]
Essaies de faire des efforts de recherche de ton coté.
Ton code n'a pas bougé d'un poil par rapport a ton premier post, j'ai l'impression de répondre dans le vide.
En plus tout a été donné dans les précédents posts.
Et j'ai une erreur (sans l'expliquer) c'est pas top pour t'aider.
[fin mode ]


 private List Email() 
{
            var db = new DataClasses1DataContext();
            var q = from a in db.Adresses
                     select new Adresse ( a.Rue, a.Cp, a.Ville );

            return q.ToList();
}
Messages postés
6
Date d'inscription
lundi 15 juin 2009
Statut
Membre
Dernière intervention
4 décembre 2009

Excuse moi, mais je recherche de mon côté, mais je voudrais un code qui pouvait que me modifier le "Select " pour pouvoir appliquer la fonction ToList()... Ce matin dans le train j'ai trouvé une méthode, qui je ne sais pas si elle est bonne:
J'insert la table annonce dans mon Linq que je renomme "Annonce1" et j'enlève toute les colonnes dont je n'est pas besoin et ensuite j'appelle carrément la table...

private List Email()
{
var db = new DataClasses1DataContext();
var q = from X in db.Annonce
select X
return q.ToList();
}
Ne m'en veux pas je recherbeaucoup de mon coté, mais je ne suis pas très bon en adaptation, c'est pour cela que je te demandais des choses assez détaillées..
Je voudrais savoir si ma méthode est bonne????