【问题标题】:Filter element json WCF Data Services过滤元素 json WCF 数据服务
【发布时间】:2015-08-10 23:24:18
【问题描述】:

在我的代码中,我使用 dataGridView 消耗 WCF 休息,通过下面的代码,我想过滤条件以仅显示过去 5 天的事件,所以我需要在链接中添加过滤器,但我没有知道怎么做。

我的问题: * 如何添加过滤器以显示过去 5 天的事件。

我的代码:

public void  button1_Click(object sender, EventArgs e)
    {
        try
        {
            dataGridView1.DataSource = GetRESTData("http://localhost:55495/EventService.svc/GetAllEvents");
        }
        catch (WebException webex)
        {
            MessageBox.Show("Es gab so ein Schlamassel! ({0})", webex.Message);
        }
    }

    private JArray GetRESTData(string uri)
    {
        var webRequest = (HttpWebRequest)WebRequest.Create(uri);
        var webResponse = (HttpWebResponse)webRequest.GetResponse();
        var reader = new StreamReader(webResponse.GetResponseStream());
        string s = reader.ReadToEnd();
        return JsonConvert.DeserializeObject<JArray>(s);
    }

dataGridView的图片

【问题讨论】:

    标签: c# json wcf


    【解决方案1】:

    如果你可以看到数组的内部,你可以使用 linq 来过滤 我认为您最好的方法是创建一个类并将其绑定到类

    但是你可以试试这个

    JObject eventob= JObject.Parse(s);
    
    var events =
           (from p in (JArray)eventob["ParentObjectYouHave"]
            orderby (DateTime?)p.["Start_Date"] descending
            select p).Take(5);
    

    【讨论】:

    • 某些东西在 "p.["St" 中带有 "."
    【解决方案2】:

    因为我正在使用 WCF,并且有一个 quety 可以给我结果,所以我修改了查询并得到了我的结果

    DateTime today = DateTime.Today.AddHours(+12);
    DateTime lastday = DateTime.Today.AddDays(-5);
    var query = (from a in se.Events
                         where a.start_date <= today && a.start_date >= lastday || a.end_date <= today && a.end_date >= lastday
                         orderby a.start_date
                         select a).Distinct();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-14
      • 1970-01-01
      • 1970-01-01
      • 2016-04-10
      • 1970-01-01
      • 2011-04-22
      • 2012-06-19
      相关资源
      最近更新 更多