实际上,我是ASP的新手,我正尝试在ChartJS中显示mySql数据库中的一些数据,为了进行测试,我制作了一个简单的表,其中包含3行,该行具有2011年和2月。显示该年份和月份的数量。
问题是,当我运行网站时,我得到500(内部服务器错误),但是问题是,如果我在方法中设置了断点,则该方法在asmx文件中甚至无法到达该站点。
这是我的webservice.asmx代码:
<System.Web.Services.WebService(Namespace:="http://tempuri.org/")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
Public Class webservice
Inherits System.Web.Services.WebService
Dim SQLConnect As String = ConfigurationManager.ConnectionStrings("myConnectionString").ConnectionString
<WebMethod()>
Public Function getTrafficSourceData(ByVal gData As List(Of String)) As List(Of trafficSourceData)
Dim t As List(Of trafficSourceData) = New List(Of trafficSourceData)()
Dim arrColor As String() = New String() {"#231F20", "#FFC200", "#F44937", "#16F27E", "#FC9775", "#5A69A6"}
Using cn As MySqlConnection = New MySqlConnection(SQLConnect)
Dim myQuery As String = "select * from statistica where anno =@year and mese=@month"
Dim cmd As MySqlCommand = New MySqlCommand()
cmd.CommandText = myQuery
cmd.CommandType = CommandType.Text
cmd.Parameters.AddWithValue("@year", gData(0))
cmd.Parameters.AddWithValue("@month", gData(1))
cmd.Connection = cn
cn.Open()
Dim dr As MySqlDataReader = cmd.ExecuteReader()
If dr.HasRows Then
Dim counter As Integer = 0
While dr.Read()
Dim tsData As trafficSourceData = New trafficSourceData()
tsData.value = dr("quantita").ToString()
tsData.label = dr("nomeprodotto").ToString()
tsData.color = arrColor(counter)
t.Add(tsData)
counter += 1
End While
End If
End Using
Return t
End Function
Public Class trafficSourceData
Public Property label As String
Public Property value As String
Public Property color As String
Public Property hightlight As String
End Class
结束班级
这是JQuery代码
$(document).ready(function () {
var gData = [];
gData[0] = "2011";
gData[1] = "FEBBRAIO";
var jsonData = JSON.stringify({
gData: gData
});
$.ajax({
type: "POST",
url: "webservice.asmx/getTrafficSourceData",
data: jsonData,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess_,
error: OnErrorCall_
});
function OnSuccess_(response) {
var aData = response.d;
var arr = [];
$.each(aData, function (inx, val) {
var obj = {};
obj.color = val.color;
obj.value = val.value;
obj.label = val.label;
arr.push(obj);
});
var ctx = $("#chartMensile").get(0).getContext("2d");
var myPieChart = new Chart(ctx).Pie(arr);
}
function OnErrorCall_(response) {
alert("ERRORE!");
}
});