首先,我对C#和Json都很陌生。
我想在C# GUI中从mysql表数据绘制图形。我编写了一个PHP文件来从mysql数据库表中选择数据,并使用echo json_encode(array("result"=>$result))
将所选内容以json数组的形式输出。
以下是我的PHP代码:
<?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对值和其他内容的折线图以读取历史数据。
当我访问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#发送的网络请求将这些数组作为字符串获取,使用下面的代码:
System.Net.WebClient wc = new System.Net.WebClient();
byte[] raw = wc.DownloadData("url to php");
string webData = System.Text.Encoding.UTF8.GetString(raw);
如果有人能帮我在 C# GUI 中以日期时间为 x 轴,以 temp1、temp2 或 p_pairs 为 y 轴绘制线图,那将是很大的帮助......
这对我来说将是一个很大的帮助。在此先感谢你。