【问题标题】:HighCharts data from SQL Server, classic asp来自 SQL Server 的 HighCharts 数据,经典 asp
【发布时间】:2013-10-29 13:43:24
【问题描述】:

我正在尝试使用来自经典 ASP 中的 SQL Server 的结果填充 HighCharts 数据集,但似乎无法正确获取语法。这是我自定义的一个非常基本的开始,我想得到数据集渲染,一切都很容易。

下面的循环工作正常,并且从我的存储过程中正确获取数据。我相信我的问题是在实际var options = 部分的data[] 部分

dim xAxisData()
dim yAxisData()
j = 0               
    adoRsGraph.MoveFirst

if adoRsGraph.EOF = false then

    Do Until adoRsGraph.EOF
        reDim xAxisData(j)
        reDim yAxisData(j)
            xAxisData(j) = adoRsGraph("Value")
            yAxisData(j) = adoRsGraph("Date")

        j = j + 1
        adoRsGraph.MoveNext
    Loop

end if



$(function () { 
        var options = {
        chart:{
            type:'line',
            renderTo: 'chartContainer'               
            },
        xAxis: {
            categories: ['Apples','Bananas','Oranges']
        },
        yAxis: {
            title:{
                text: 'Assets'          
            }
        },
        series: [{
            name: 'Dates',
            data: [<% For Each item In yAxisData    Response.Write(item & ",") Next %>],
            color: '#006600'
        }]
    }
var chart3 = new Highcharts.Chart(options); 
});

接收错误;

Microsoft VBScript compilation 
Description:Expected end of statement
Line:90

第 90 行是;

data: [<% For Each item In yAxisData    Response.Write(item & ",") Next %>],

【问题讨论】:

    标签: sql-server asp-classic highcharts


    【解决方案1】:

    恕我直言,我认为最好将将数据转换为逗号分隔列表的逻辑分解为函数。当您重新调整数组时,我还添加了preserve。否则你会丢失数据。

    dim xAxisData()
    dim yAxisData()
    j = 0               
        adoRsGraph.MoveFirst
    
    if adoRsGraph.EOF = false then
        Do Until adoRsGraph.EOF
            reDim preserve xAxisData(j)
            reDim preserve yAxisData(j)
            xAxisData(j) = adoRsGraph("Value")
            yAxisData(j) = adoRsGraph("Date")
    
            j = j + 1
            adoRsGraph.MoveNext
        Loop
    end if
    
    $(function () { 
        var options = {
        chart:{
            type:'line',
            renderTo: 'chartContainer'               
            },
        xAxis: {
            categories: ['Apples','Bananas','Oranges']
        },
        yAxis: {
            title:{
                text: 'Assets'          
            }
        },
        series: [{
            name: 'Dates',
            data: [<%= GetYAxisData() %>],
            color: '#006600'
        }]
    }
    var chart3 = new Highcharts.Chart(options); 
    });
    

    您发布的原始代码 For Each item In yAxisData Response.Write(item &amp; ",") 会在末尾创建一个额外的逗号 (,),从而导致意外行为。我认为使用 Join() 函数是一个更好的选择。

    function GetYAxisData()
        GetYAxisData = Join(yAxisData, ",")
    end function
    

    【讨论】:

    • 你我的朋友是救命稻草,令我惊讶的是我的想法与经典 asp 相差多远,只是做得不够,这些是为了重新设计我之前的旧代码时间。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 2013-02-01
    • 2012-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-23
    相关资源
    最近更新 更多