0

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

一切正常,但是当我尝试运行我的网站时,它会在图表中加载一些虚拟数据。我的 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

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

为什么会这样

请告诉我

谢谢

4

2 回答 2

0

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

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

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

于 2012-04-21T14:14:57.640 回答
0

您提到相同的数据在一个图表中运行良好,但在另一个图表中却不行。这两个图表有什么区别吗?我认为问题出在客户端,因为您已经验证数据库和图表之一中的数据都很好。所以现在请关注客户端,检查您如何配置图表的数据源。顺便说一句,据我从屏幕截图中可以看出,日期是有序的。它从 2011 年 11 月 1 日开始,到 2011 年 12 月 1 日,然后是 2012 年 1 月 1 日,一直到 2012 年 10 月 1 日。图表有点小,所以标签显示在两条线上。请不要先读第一行,再读第二行。相反,从左到右一起阅读这两行。就像是:

1   3   5
  2    4   6

如果您的意思是日期不应该在未来,那么请检查您是否有任何可能更改日期的代码。

最好的祝福,

明旭。

于 2012-04-23T09:25:06.040 回答