首先,我對C#和Json非常陌生。如何使用json數組使用webrequest繪製折線圖
我想在C#GUI中繪製來自mysql表格數據的圖形。我犯了一個PHP文件,選擇從MySQL數據庫表中的數據,並使用echo json_encode(array("result"=>$result))
這是我的PHP迴盪在JSON數組選擇的內容:
<?php
define('HOST','*********************');
define('USER','*********************');
define('PASS','*********************');
define('DB','***********************');
if($_SERVER['REQUEST_METHOD']=='GET'){
$start = $_GET['start'];
$ending = $_GET['ending'];
}
$con = mysqli_connect(HOST,USER,PASS,DB);
$sql = "SELECT * FROM table WHERE date_time BETWEEN '$start' and '$ending'" ;
$res = mysqli_query($con,$sql);
$result = array();
while($row = mysqli_fetch_array($res)){
array_push($result,array('id'=>$row[0],'p_pairs'=>$row[1],'temp1'=>$row[2] ,'temp2'=>$row[3],'temp3'=>$row[4],'temp4'=>$row[5],'temp5'=>$row[6],'avg_current'=>$row[7],'avg_voltage'=>$row[8],'kw'=>$row[9],'kwh'=>$row[10]));
}
echo json_encode(array($result));
mysqli_close($con);
?>
使用鏈接,我可以清楚地看到JSON數組所有我想要的是繪製溫度值(temp1,temp2,...),p對值和其他圖形以及date_time在線圖中以讀取歷史數據。
所有,當我訪問PHP頁面是我得到:
[[{"id":"1","p_pairs":"0000-00-00 00:00:00","temp1":"2","temp2":"100","temp3":"100","temp4":"100","temp5":"100","avg_current":"100","avg_voltage":"300","kw":"300","kwh":"300"},{"id":"2","p_pairs":"0000-00-00 00:00:00","temp1":"45","temp2":"105","temp3":"230","temp4":"100","temp5":"2500","avg_current":"570","avg_voltage":"100","kw":"250","kwh":"1000"},{"id":"3","p_pairs":"2016-01-07 21:10:00","temp1":"45","temp2":"105","temp3":"230","temp4":"100","temp5":"2500","avg_current":"570","avg_voltage":"100","kw":"250","kwh":"1000"},{"id":"4","p_pairs":"2016-01-07 21:10:00","temp1":"45","temp2":"105","temp3":"230","temp4":"100","temp5":"2500","avg_current":"570","avg_voltage":"100","kw":"250","kwh":"1000"}]]
注:某些日期時間在這裏設置爲默認值。我只是想展示這個陣列。正確的一個將是完美的繪製圖。
我可以使用來自C#的Web請求在字符串中獲取這些數組。使用波紋管代碼:
System.Net.WebClient wc = new System.Net.WebClient();
byte[] raw = wc.DownloadData("url to php");
string webData = System.Text.Encoding.UTF8.GetString(raw);
這將是一個很大的幫助。如果有人能幫助我在折線圖繪製這是DATE_TIME Vs的temp1中,TEMP2或p_pairs並像在C#GUI ...
這對我來說是一個很大的幫助。 提前感謝您。
開始時,你應該使用Newtonsoft的JSON.net到WEBDATA轉換成可用的JSON對象。查看一些教程。 你想要生成什麼?你是否試圖用圖形生成一個JPG或PNG?或者這是爲了在網站上顯示? – Nikhil
感謝您的回覆。我想在我的Winform UI中繪製它們。這是在反序列化並找到表格後完成的。 我目前的問題是,我有六個相同的表,如上所述。我想以曲線圖的形式繪製類似date_time vs temp1(table1),tamp1(table2),tamp1(table3),tamp1(table4),tamp1(table5),tamp1(table6)的圖表。 所有的表都在相同的數據庫中,並且結構是相同的。 – Althaf
這聽起來像你只需要一個圖形庫。看看https://code.msdn.microsoft.com/mschart。 Infragistics,DevExpress和其他構件製造商有其他工具來創建圖形。 – Nikhil