Я передаю данные из базы данных в AMCharts с помощью SQL-запроса и помещаю их в пакет просмотра.Но нет выхода.Я пытался сделать это на JSON, но я не имею ни малейшего представления о том, как он работает.
Может кто-нибудь указать, что не так в моем коде?или помогите мне это исправить.
вот моя модель:
public partial class Test
{
public string wdsection { get; set; }
public int secCount { get; set; }
}
вот мой код:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<!--amcharts start here-->
<script type="text/javascript" src="http://www.amcharts.com/lib/3/amcharts.js"></script>
<script type="text/javascript" src="http://www.amcharts.com/lib/3/pie.js"></script>
<script type="text/javascript" src="http://www.amcharts.com/lib/3/themes/none.js"></script>
<!--amchart end here-->
<div id="chartdiv"></div>
<script type="text/javascript">
function createChart() {
debugger;
var chartData2 =
[
@ViewBag.DataPoints.ToString()
];
var chartDataResults = new Array();
$.ajax({
type: 'POST',
dataType: 'json',
contentType: 'application/json',
url: '@Url.Action("GetSecCount", "Home")',
data: {},
success: function (response) {
var aData = response.dataPoints;
for (var i = 0; i < aData.length; i++) {
var section = aData[i].wdsection;
alert(section);
chartDataResults.push({
wdsection: wdsection
});
}
// create the chart here
// PIE CHART
chart = new AmCharts.AmPieChart();
// title of the chart
chart.addLabel("0", "!20", "World", "center", 16);
chart.backgroundAlpha = 0.4;
chart.backgroundColor = "#000000";
chart.dataProvider = chartDataResults;
chart.titleField = "wdsection";
chart.valueField = "secCount";
chart.sequencedAnimation = true;
chart.startEffect = "elastic";
chart.labelsEnabled = false;
chart.labelText = "[[title]]";
chart.startDuration = 2;
chart.labelRadius = 10;
// WRITE
chart.write("chartdiv");
}
});
}
$(document).ready(createChart);
</script>
вот мой контроллер:
public ActionResult Index()
{
using (SqlConnection sqlcon = new SqlConnection(connstring))
{
List<Test> secCounts = new List<Test>();
SqlCommand cmd = new SqlCommand("select a.wdsection,count(*) as secCount from DB_CIS.dbo.withdraw_tbl a, DB_CIS.dbo.item_tbl b where a.addqtyid = b.Item_ID and b.category = 'CONSUMABLES' group by wdsection", sqlcon);
cmd.CommandType = CommandType.Text;
cmd.CommandTimeout = 1000000;
sqlcon.Open();
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
Test secs = new Test();
secs.wdsection = rdr["wdsection"].ToString();
secs.secCount = Convert.ToInt32(rdr["secCount"]);
secCounts.Add(secs);
}
ViewBag.Locs = secCounts.ToList();
ViewBag.DataPoints = JsonConvert.SerializeObject(secCounts.ToList(), _jsonSetting);
}