在向Silverlight图表添加数据时出错?

时间:2012-04-21 10:19:52

标签: c# silverlight azure wcf-ria-services

我尝试将值添加到silverlight折线图中。为此我创建了折线图,然后使用wcf ria services添加该图表中的数据。

Everthing工作正常,但是当我尝试运行我的网站时,它会在图表中加载一些虚拟数据。在我的windows azure sql表中没有类似的数据。 它访问azure sql表并且工作正常,但我的数据库中的值不相同。

要显示从azure应用程序访问数据库,我使用了ado.net实体模型并创建了 waterinfodomain ,我使用了此代码和其他折线图类似。

我用过:

    private GetTemprature()
            {
                //shows and gives garden uses from sql table
                context = new WaterDomainContext();
                context.FarmTemps.Clear();
                var query = context.GetFarmTempsQuery();
                LoadTemp = context.Load<FarmTemp>(query);
                LoadTemp.Completed += new EventHandler(LoadTemp_Completed);
            }

            private void LoadTemp_Completed(object sender, EventArgs e)
            {
                //Draw values from a table for Performance
                List<Temprature> tmp = new List<Temprature>();
                if (LoadTemp.Entities != null || LoadTemp.Entities.Count() > 0)
                {
                    foreach (FarmTemp item in LoadTemp.Entities)
                    {
                        tmp.Add(new Temprature()
                        {
                            Temp = (float)(item.Temp),
                            Date = Convert.ToDateTime(item.ODate)
                        });
                    }
                }
                LineSeries tmpv = FarmCondtion.Series[0] as LineSeries;
                tmpv.ItemsSource = tmp;

            }

我已添加了这张图表的快照:http://i.imgur.com/bZkxZ.png

现在您可以看到日期不是正常顺序[这些也不是我数据库中的日期]并且只显示Dots而不是行。 但是我的数据库确实只有过去七天的日期和其他值的常规值。

为什么会这样?

请告诉我

由于

2 个答案:

答案 0 :(得分:0)

我的第一个赌注是问题在于 Convert.ToDateTime 方法。我认为 item.ODate 是您要转换为DateTime的字符串。

通过传递正确的文化来转换为DateTime会更安全。例如,10/1/2012在en-US中与在nl-BE中不同。这就是为什么始终指定从哪个文化转换字符串(参考:http://msdn.microsoft.com/en-us/library/9xk1h71t.aspx)非常重要。

现在另一方面。为什么您希望以正确的顺序查看日期?我没有看到任何代码根据日期对项目进行排序。你是在后端做这个吗?

答案 1 :(得分:0)

您提到相同的数据在一个图表中正常工作,但在另一个图表中没有。两张图表之间有什么不同吗?我认为问题出在客户端,因为您已经验证了数据库和其中一个图表中的数据都很好。因此,请立即关注客户端,检查如何配置图表的数据源。顺便说一句,据我从截图中可以看出,日期是有序的。它从11/1/2011开始,到12/1/2011,然后是2012年1月1日,一直到10/1/2012。图表有点小,因此标签显示在两行上。请不要阅读第一行,然后阅读第二行。相反,从左到右一起读两条线。类似的东西:

1   3   5
  2    4   6

如果您的意思是日期不应该在将来,请检查您是否有可能改变日期的代码。

最诚挚的问候,

徐明。