Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.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
Javascript Asp.Net chart.js 500使用.asmx web方法时出现内部服务器错误_Javascript_C#_Asp.net_Chart.js_Ashx - Fatal编程技术网

Javascript Asp.Net chart.js 500使用.asmx web方法时出现内部服务器错误

Javascript Asp.Net chart.js 500使用.asmx web方法时出现内部服务器错误,javascript,c#,asp.net,chart.js,ashx,Javascript,C#,Asp.net,Chart.js,Ashx,我正在尝试在我的asp webforms应用程序中绘制多系列图表。我使用这个教程 并得到错误。当我尝试在使用本教程的地方绘制饼图时,也遇到了同样的问题 这两次我都犯了同样的错误。在页面加载时,我遇到以下错误: Chart.asmx/GetChart:1 Failed to load resource: the server responded with a status of 500 (Internal Server Error) 当我改变dropdownlist选择时,我得到了这个错误 jq

我正在尝试在我的asp webforms应用程序中绘制多系列图表。我使用这个教程

并得到错误。当我尝试在使用本教程的地方绘制饼图时,也遇到了同样的问题

这两次我都犯了同样的错误。在页面加载时,我遇到以下错误:

Chart.asmx/GetChart:1 Failed to load resource: the server responded with a status of 500 (Internal Server Error)
当我改变dropdownlist选择时,我得到了这个错误

jquery.min.js:2 POST http://localhost:55550/Chart.asmx/GetChart 500 (Internal Server Error)
编辑发布应用程序时也会发生相同的错误。 我有web方法Chart.asmx,该方法中的方法是GetChart。方法的源代码是:

public static List<object> GetChart(string policaID, int zaposlenik)
    {
        List<object> chartData = new List<object>();
        string query = "SELECT DISTINCT DATEPART(YEAR, pocetak) Year FROM Police";
        DataTable dtYears = GetData(query);
        List<int> labels = new List<int>();
        foreach (DataRow row in dtYears.Rows)
        {
            labels.Add(Convert.ToInt32(row["Year"]));
        }
        chartData.Add(labels);
        query = string.Format("SELECT DATEPART(YEAR, p.pocetak) Year,COUNT(DATEPART(YEAR, p.pocetak)) BrojPolica from Police p RIGHT JOIN Zaposlenici z on p.djelatnik = z.zaposleniID " +
        "WHERE p.vrsta_police = " + policaID + " GROUP BY DATEPART(YEAR, p.pocetak)");
        List<int> series1 = new List<int>();
        DataTable dtPolice = GetData(query);
        foreach (DataRow row in dtPolice.Rows)
        {
            series1.Add(Convert.ToInt32(row["BrojPolica"]));
        }
        chartData.Add(series1);
        query = string.Format("SELECT DATEPART(YEAR, p.pocetak) Year,COUNT(DATEPART(YEAR, p.pocetak)) BrojPolica from Police p RIGHT JOIN Zaposlenici z on p.djelatnik = z.zaposleniID " +
            "WHERE p.djelatnik=" + zaposlenik.ToString() + " GROUP BY DATEPART(YEAR, p.pocetak)");
        List<int> series2 = new List<int>();
        DataTable dtZaposlenik = GetData(query);
        foreach (DataRow row in dtZaposlenik.Rows)
        {
            series2.Add(Convert.ToInt32(row["BrojPolica"]));
        }
        chartData.Add(series2);

        return chartData;
    }
publicstaticlist-GetChart(字符串policaID,int-zaposlenik)
{
列表图表数据=新列表();
string query=“从Police中选择不同的日期部分(年份,pocetak)年份”;
数据表DTYERS=GetData(查询);
列表标签=新列表();
foreach(数据行,在dtYears.Rows中)
{
labels.Add(转换为第32行[“年]);
}
添加(标签);
query=string.Format(“选择DATEPART(YEAR,p.pocetak)YEAR,COUNT(DATEPART(YEAR,p.pocetak))BrojPolica从Police p右键连接Zaposlenici z on p.djelatnik=z.zaposleniID”+
“其中p.vrsta_police=“+policaID+”按日期分组(年份,p.pocetak)”;
列表系列1=新列表();
DataTable dtPolice=GetData(查询);
foreach(dtPolice.Rows中的数据行)
{
series1.Add(转换为32行[“BrojPolica”);
}
chartData.Add(系列1);
query=string.Format(“选择DATEPART(YEAR,p.pocetak)YEAR,COUNT(DATEPART(YEAR,p.pocetak))BrojPolica从Police p右键连接Zaposlenici z on p.djelatnik=z.zaposleniID”+
“其中p.djelatnik=“+zaposlenik.ToString()+”按日期分组(年份,p.pocetak)”;
列表系列2=新列表();
数据表dtZaposlenik=GetData(查询);
foreach(dtZaposlenik.Rows中的数据行)
{
series2.Add(转换为32行[“BrojPolica”);
}
chartData.Add(系列2);
返回图表数据;
}
我还有两个下拉列表。一是改变保单类型,二是选择员工。Aspx页面如下所示

Vrsta Police:
                        <asp:DropDownList ID="ddlVrstaPolice" runat="server"></asp:DropDownList>
                        Djelatnik:
                        <asp:DropDownList ID="ddlZaposlenike" runat="server"></asp:DropDownList>
                        <div id="dvChart">                         
                        </div>
                        <p class="text-center">
Vrsta警察局:
杰拉特尼克:

绘制图表的Java脚本代码为:

$(function () {
            LoadChart();
            $("[id*=ddlVrstaPolice], [id*=ddlZaposlenike]").bind("change", function () {
                LoadChart();
            });
        });
        function LoadChart() {
            var vrsta_police = $("[id*=ddlVrstaPolice]").val();
            var zaposlenik = $("[id*=ddlZaposlenike]").val();
            $.ajax({
                type: "POST",
                url: '<%=ResolveUrl("~/Chart.asmx/GetChart") %>',
                data: "{policaID: '" + vrsta_police + "', zaposlenik: '" + zaposlenik + "'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (r) {
                    var labels = r.d[0];
                    var series1 = r.d[1];
                    var series2 = r.d[2];
                    var data = {
                        labels: r.d[0],
                        datasets: [
                            {
                                label: vrsta_police,
                                fillColor: "rgba(255, 255, 193, 0.2)",
                                strokeColor: "#FCD209",
                                pointColor: "#FF8C00",
                                data: series1
                            },
                            {
                                label: zaposlenik,
                                fillColor: "rgba(217, 237, 247, 0.2)",
                                strokeColor: "#BCE8F1",
                                pointColor: "#0090CB",
                                data: series2
                            }
                        ]
                    };
                    $("#dvChart").html("");
                    var canvas = document.createElement('canvas');
                    $("#dvChart")[0].appendChild(canvas);

                    //Fix for IE 8
                    if ($.browser.msie && $.browser.version == "8.0") {
                        G_vmlCanvasManager.initElement(canvas);
                    }
                    var ctx = canvas.getContext('2d');
                    ctx.canvas.height = 300;
                    ctx.canvas.width = 500;
                    var lineChart = new Chart(ctx).Line(data, {
                        bezierCurve: false
                    });
                },
                failure: function (response) {
                    alert('There was an error.');
                }
            });
        }
$(函数(){
负荷图();
$(“[id*=ddlVrstaPolice],[id*=ddlZaposlenike]”。绑定(“更改”,函数(){
负荷图();
});
});
函数负载图(){
var vrsta_police=$(“[id*=ddlVrstaPolice]”)。val();
var zaposlenik=$(“[id*=ddlZaposlenike]”)。val();
$.ajax({
类型:“POST”,
url:“”,
数据:“{policaID:'”+vrsta_police+”,zaposlenik:'“+zaposlenik+”}”,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:功能(r){
var标签=r.d[0];
var系列1=r.d[1];
var序列2=r.d[2];
风险值数据={
标签:r.d[0],
数据集:[
{
标签:vrsta_警察局,
fillColor:“rgba(255,255,193,0.2)”,
strokeColor:#FCD209“,
pointColor:#FF8C00“,
数据:系列1
},
{
标签:zaposlenik,
fillColor:“rgba(217237247,0.2)”,
strokeColor:#BCE8F1“,
pointColor:#0090CB“,
数据:系列2
}
]
};
$(“#dvChart”).html(“”);
var canvas=document.createElement('canvas');
$(“#dvChart”)[0].appendChild(画布);
//修复IE 8
如果($.browser.msie&&$.browser.version==“8.0”){
G_vmlcavasmanager.initElement(画布);
}
var ctx=canvas.getContext('2d');
ctx.canvas.height=300;
ctx.canvas.width=500;
var折线图=新图表(ctx).Line(数据{
贝塞尔曲线:假
});
},
故障:功能(响应){
警报(“发生错误”);
}
});
}

你能用try-catch实现GetChart,在catch正文中添加断点,并在你的问题中添加StackTrace异常吗?听起来可能很有趣,但我不知道怎么做。我应该在哪里编写异常以及使用什么类型的异常。我尝试用谷歌搜索它,但在这个端点的处理程序中没有找到解决方案
http://localhost:55550/Chart.asmx/GetChart
异常添加try-catch
classI在GetChart方法上方没有看到
[WebMethod]
属性