

按鈕單擊,從SQL讀取一列時間一列數值,時間列系結到X軸,數值列系結到Y軸,X軸最右側刻度及標簽無法顯示,請問有什么辦法解決?代碼如下:
string searchString = string.Format("select [時間],[1#空間溫度] from Data where [時間] between '{0}' and '{1}' order by [時間] ASC ", dtPickerStart.Value, dtPickerEnd.Value);
SqlDataAdapter dap = new SqlDataAdapter(searchString, conn);
DataSet ds = new DataSet();
dap.Fill(ds);
if (ds.Tables[0] != null)
{
//chart1.DataSource = ds.Tables[0];
//chart1.Series[0].XValueMember = "時間";
//chart1.Series[0].YValueMembers = "1#空間溫度";
//chart1.DataBind();
//chart1.ChartAreas[0].AxisX.Minimum = (((DateTime)ds.Tables[0].Rows[0][0])).ToOADate();
//chart1.ChartAreas[0].AxisX.Maximum = ((DateTime)(ds.Tables[0].Rows[ds.Tables[0].Rows.Count - 1][0])).ToOADate();
chart1.Series[0].XValueType = ChartValueType.DateTime;
chart1.ChartAreas[0].AxisX.Interval = 1; //設定X軸坐標的間隔為1
chart1.ChartAreas[0].AxisX.LabelStyle.IsStaggered = true; //設定是否交錯顯示,比如資料多的時間分成兩行來顯示
List<DateTime> listX = new List<DateTime>();
List<double> listY = new List<double>();
listX.Clear();
listY.Clear();
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
listX.Add(Convert.ToDateTime(ds.Tables[0].Rows[i][0]));
listY.Add(Convert.ToDouble(ds.Tables[0].Rows[i][1]));
}
chart1.Series[0].Points.DataBindXY(listX, listY);
chart1.ChartAreas[0].AxisX.Minimum = listX[0].ToOADate();
chart1.ChartAreas[0].AxisX.Maximum = listX[ds.Tables[0].Rows.Count - 1].ToOADate();
}
有沒有辦法解決圖中最右側的刻度及標簽無法顯示問題?
以上是網上借鑒的代碼,請問除以上外有沒有最標準最優的SQL讀取兩列(一列時間,一列數值)怎么顯示到chart上的方法?
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/31269.html
標籤:圖表區
