Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ASP.NET图表系列中暂停_C#_Asp.net_Charts - Fatal编程技术网

C# 在ASP.NET图表系列中暂停

C# 在ASP.NET图表系列中暂停,c#,asp.net,charts,C#,Asp.net,Charts,问题:我有一个ASP.NET 4.0图表对象,它为现场的调制解调器动态生成一系列延迟数据。整个页面做的更多,图表也显示了一些其他内容,但它超出了本文的范围。该系列是从数据库获取信息的SQL生成的,我想看到的是当远程设备脱机时,图表会自动跳过。我正在显示调制解调器在网络中的最后一个小时的数据,但假设它最后一次在网络中的时间不到一个小时,它刚刚脱机,所以我想查看它脱机时的状态 条件:从本质上讲,如果调制解调器在网络中,在一个小时内离线、返回、离线,然后全部返回,该怎么办?人们希望图表系列中会有空白。

问题:我有一个ASP.NET 4.0图表对象,它为现场的调制解调器动态生成一系列延迟数据。整个页面做的更多,图表也显示了一些其他内容,但它超出了本文的范围。该系列是从数据库获取信息的SQL生成的,我想看到的是当远程设备脱机时,图表会自动跳过。我正在显示调制解调器在网络中的最后一个小时的数据,但假设它最后一次在网络中的时间不到一个小时,它刚刚脱机,所以我想查看它脱机时的状态

条件:从本质上讲,如果调制解调器在网络中,在一个小时内离线、返回、离线,然后全部返回,该怎么办?人们希望图表系列中会有空白。目前,SQL查询处理这个问题的方式是,它忽略300ms以下的空值和延迟值,因为从技术上讲,这对于卫星来说是不可能的

问题:如果我要调整查询以不抛出0,有没有办法让它显示图表中的空白?图表能支持这一点吗?它是否需要多个系列(这将是一个熊来实现)?还有别的方法我没想到吗

注意事项:如果需要,我可以发布代码,但这并不是严格必要的,因为这更像是一个概念性/是否可能的问题

我已经在这个项目上工作了好几个星期,几乎完成了,所以我不得不回来解决这个问题,因为很少有人对图表控件有很好的理解,所以我想这是最好的提问地点,因为我在调整查询和图表设置,或者在谷歌上搜索了几个小时后还没有找到任何东西

非常感谢你的帮助

更新:原来有相关代码。我完全忘记了动态生成图表系列有不同的方法。的确,这可能是一点一点的。如果我这样做,肯定会更容易。相反,我的系列处理程序如下所示:

protected Boolean Chart_A_Line(string query, string seriesName, int queryType, string connnectionString)
{
    SqlConnection con = new SqlConnection(connnectionString);
    Boolean chartEmpty = true;

    using (con)
    {
        SqlCommand command = new SqlCommand(query, con);


        switch (queryType)
        {
            case 0:
                command.Parameters.AddWithValue("@RemoteId", remote);
                break;
            case 1:
                command.Parameters.AddWithValue("@IRID", inrouteId);
                break;
        }

        command.Parameters.AddWithValue("@NMS", nms);

        con.Open();

        SqlDataReader chartReader = command.ExecuteReader();

        if (chartReader.HasRows)
        {
            chartEmpty = false;
            LatencyCNChart.Series[seriesName].Points.DataBindXY(chartReader, "Time", chartReader, "Data");
        }

        con.Close();

        return chartEmpty;
    }
}

我不太确定如何将数据添加到图表中,但当向数据系列添加新点时,可以将其属性设置为
true
()

您也可以使用


只要您知道数据中所有的
0
值肯定意味着一个间隙值,那么您就可以对每个
0
值进行适当的调用,以在图表中设置间隙。

对不起,我想这很重要。我会在几分钟后公布成本。如果它不是一次绑定整个系列,它肯定会那么容易。相反,我使用的是数据读取器和DataBindXY方法。@Cthulhu您应该能够将数据点数据绑定到DBNull类型的值,如果这样做对您有效的话。它提到在我发布的一个链接中,我完全错过了那个链接!周末后我得试试,看看能不能让它这么做。让我担心的是数据读取器一次添加所有点,这需要手动添加每个点。我将不得不阅读更多关于它的内容,并在没有时间离开时对它进行测试,但感谢您提供的信息!如果你的答案在星期一有效的话,我肯定会认为你的答案是正确的。谢谢@Cthulhu我有一种感觉,DBNull的数据绑定可以通过将其绑定到具有
Empty=true
DataPoint
来工作,但我自己还没有尝试过。@Mathew真棒!原来是你的建议让我找到了我需要的解决方案。图表本身实际上处理数据中的跳过和暂停,只要值实际上为空,因为任何数值都只是被绘制成图表,忽略数字会导致稍微不准确的线条。为了解决这个问题,我最终要做的是使用SQL查询将阈值下的任何数字视为NULL,这将导致中断和暂停。非常感谢你的帮助!