locked
Requette linq to sql select date max RRS feed

  • Question

  • Bonjour ,

    j'ai une table ou  je stocke des informations et parmi ces information le champ date.

    Dans un contrôle textblock je souhaite afficher la date MAX du champ date

    voici ma requête : var results = (from RssData date in _model.Data  
                                                   
                                                   
                            select date.Date).Max() ;

    donc je cherche comment exécuter cette requête pour pouvoir lier le résultat au texblock ??

     

    Cordialement ,Sara. 

     

     



    mercredi 13 juillet 2011 16:12

Réponses

  • Bonjour,

    c'est bon j'ai trouve la solution je l'a partage avec vous :

      var results = (from RssData date in _model.Data


                               select date.Date).Max();
                results.AsQueryable();
               
                txtDate.Text = results;

     

    Cordialement,Sara.

    jeudi 14 juillet 2011 16:38

Toutes les réponses

  • Bonjour,

    Voici une proposition d'exemple :

    public partial class MainPage : PhoneApplicationPage
      {
        // Constructor
        public MainPage()
        {
          InitializeComponent();
          this.Loaded += new RoutedEventHandler(MainPage_Loaded);
        }
    
        void MainPage_Loaded(object sender, RoutedEventArgs e)
        {
          RssDataCollection rss = new RssDataCollection();
          rss.Add(new RssData() { Date = new DateTime(2010,11,20) });
          rss.Add(new RssData() { Date = new DateTime(2010, 10, 20) });
          rss.Add(new RssData() { Date = new DateTime(2010, 8, 20) });
          rss.Add(new RssData() { Date = new DateTime(2010, 12, 25) });
          rss.Add(new RssData() { Date = new DateTime(2010, 11, 19) });
          rss.Add(new RssData() { Date = new DateTime(2010, 12, 18) });
          this.DataContext = rss;
        }
      }
    
      /// <summary>
      /// Classe recupéré dans la base de donnée
      /// </summary>
      public class RssData
      {
        public DateTime Date { get; set; } 
    
        //Plus toutes les autres propriétés
      }
    
      /// <summary>
      /// Classe regroupant la collection de RssData
      /// </summary>
      public class RssDataCollection : List<RssData>
      {
        public DateTime DateMax 
        { 
          get 
          {
            return this.Select(rss => rss.Date).Max();
          } 
        }
    
        //Plus toutes les propriétés nécéssaires
      }
    

    <!--ContentPanel - place additional content here-->
        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
          <TextBlock Text="{Binding Path=DateMax}" />
        </Grid>
    

     

     


    Cordialement, Pascal.

    Développeur Wpf/SilverLight/WinPhone7

    jeudi 14 juillet 2011 09:32
  •  

     Je vous explique suivant votre logique :

    je rempli ma table des donnes récupérer d'un flux  

    ma table est comme suit :

     [Table]

        public class RssData
        {
        
            [Column(
            IsPrimaryKey = true,
            IsDbGenerated = true,
            DbType = "INT NOT NULL Identity",
            CanBeNull = false,
            AutoSync = AutoSync.OnInsert)]
            public int Id { get; set; }
       
            [Column]
            public string Title { get; set; }

            [Column]
            public string Date { get; set; }

            [Column]
            public string Link{ get; set; }
            [Column(DbType="NText") ]
            public string Desciption{ get; set; }

            [Column]
            public string Enclosure{ get; set; }

        }

     

    je remplis la table comme suit :

     

     //insertion des donnees dans la DB
                        RssData rssD = new RssData();
                        rssD.Date = rss.Date;
                        rssD.Desciption = rss.Desciption;
                        rssD.Link = rss.Link;
                        rssD.Title = rss.Title;
                        rssD.Enclosure = rss.Enclosure;
                        Debug.WriteLine("insertion dans la base :" + rssD.Enclosure);
                        rssDatas.Add(rssD);
                        _model.Data.InsertOnSubmit(rssD);
                    }

                    flux.Add(rss);

                }
                lb.ItemsSource = flux;

     

    ma requête est la suivante :  var results = (from RssData date in _model.Data  
                                                   
                                                   
                            select date.Date).Max() ;

     results contient la requête et elle n'est pas encore exécuter

    je veux savoir comment je peux l'exécuter ?  

     

     

     

    jeudi 14 juillet 2011 12:56
  • Si je ne me trompe pas des que vous irez lire la variable results.

    La requête sera executer.

    Donc si vous faîtes

    String mavariable = results;

    Cela devrait être bon.


    Cordialement, Pascal.

    Développeur Wpf/SilverLight/WinPhone7

    jeudi 14 juillet 2011 14:25
  • Bonjour ,

    pour tester j'ai essayer d'afficher le contenu de la variable results , j'ai vu qu'elle  affiche la requête, elle contient pas le résultats de la requête.

    jeudi 14 juillet 2011 15:33
  • et si vous essayer de décomposer la requête comme ceci :

    List<String> liste = this.Select(rss => rss.Date).ToList();
            string s=liste.Max();
    

    Je ne connais pas Linq To Sql, donc je ne sais pas si c'est suffisant.

     


    Cordialement, Pascal.

    Développeur Wpf/SilverLight/WinPhone7

    jeudi 14 juillet 2011 15:53
  • Bonjour,

    c'est bon j'ai trouve la solution je l'a partage avec vous :

      var results = (from RssData date in _model.Data


                               select date.Date).Max();
                results.AsQueryable();
               
                txtDate.Text = results;

     

    Cordialement,Sara.

    jeudi 14 juillet 2011 16:38
  • Bonjour,

    Merci pour tenir la communauté informée sur la suite de vos démarches. Svp  n’oubliez pas marquer la réponse qui résoudre votre problème, afin que d'autres personnes avec le même souci puissent profiter de cette solution.

     

    Cordialement,

    Cipri


    Suivez MSDN sur Twitter   Suivez MSDN sur Facebook


    Ciprian DUDUIALA, MSFT  
    •Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.

    vendredi 15 juillet 2011 06:24