ASP.net Chart元件 輸出圖表x軸長條線條過寬,和x軸顯示錯誤

ptw0518
輸出結果的圖片網址
https://imagizer.imageshack.com/img923/9475/3ETNqN.gif
問題在於:
1.當sql查到的資料太少時,柱狀寬度會變大,導致看不清x軸的ID
2.我的程式寫法會使得沒查到資料,x軸也會顯示ID,但y軸沒值;希望產生的結果是當y軸沒值時x軸不顯示
3.不知道為什麼x軸為0有一筆資料,但資料庫沒有ID為0的資料列,圖表卻顯示有
比較理想輸出圖片為:
https://imagizer.imageshack.com/img922/7058/t8GTvm.gif

程式碼:
protected void btnQuery_Click1(object sender, EventArgs e)
{

DataTable dt;
DataTableReader dtr;
dt = DBQuery.GetTable();//sql資料查詢,覺得不是重點故省略,省略參數輸入
dtr = dt.CreateDataReader();//依照網路範例,與下一行相關
gvChartQuery.DataBindCrossTable(dtr, "CompanyName", "id", "TotalPrice", "Label=ContactWindow");//sql和圖表的資料繫結
gvChartQuery.ChartAreas[0].AxisX.Interval = 2;//x軸間隔為2
for (int i = 0; i < dt.Rows.Count; i++)
{
gvChartQuery.Series[0].Points.Add(i);
}
}

覺得是圖片元件的問題,請各位大大幫忙,謝謝



Alan.Liu
test
789789789789
第1個問題,柱狀寬度設定可以參考這裡
http://www.blueshop.com.tw/board/FUM20050124192253INM/BRD20120908004539INP.html

第2,3個問題 你可以 group by having count(*)>0 或用where 把「y軸沒值」的情況過濾掉

或者是 先取得各個ID的量 再用series.Points.AddY 或 series.Points.DataBindXY 的方式把資料放到chart裡面

相關語法可以參考這裡
https://ithelp.ithome.com.tw/articles/10253405?sc=rss.iron
https://ithelp.ithome.com.tw/questions/10206238
https://dotblogs.com.tw/gelis/2011/08/21/33704
回到頂部