2015-02-23 87 views
1

我有一些代码正在运行,但规模是错误的。我尝试了很多变化,没有任何工作正常。我搜索了这个和许多第三方插件,用于人们正在使用的图表。任何提示都欢迎。我正在使用MVC 3和.NET/C#。.NET图表和条形图

int userID = da.getUserID(username); 
int shopid = da.getShopID(brandnamelist[0].ToString()); 
BaseController db = new BaseController(); 
DataSet retailerManDS = da.getRetailerManDS(db, shopid); 

String[] retailerArray = new String[retailerManDS.Tables[0].Rows.Count]; 
int[] bestPriceArray = new int[retailerManDS.Tables[0].Rows.Count]; 

for (int i = 0; i < retailerManDS.Tables[0].Rows.Count; i++) 
{ 
    String retailername = retailerManDS.Tables[0].Rows[i]["RetailerName"].ToString(); 
    int numberBestPrices = Convert.ToInt32(
     retailerManDS.Tables[0].Rows[i]["numberBestPrices"]); 
    retailerArray[i] = retailername; 
    bestPriceArray[i] = numberBestPrices; 
} 

var key = new Chart(width: 800, height: 800) 
    .AddTitle(brandnamelist[0].ToString()+ " Best Prices") 
    .AddSeries(
    chartType: "StackedBar", 
    name: "Best Prices", 
    markerStep: 1, 
    xValue: retailerArray, 
    xField: "Retailers", 
    yValues: bestPriceArray, 
    yFields: "Number Best Prices"); 

byte[] byteImage = key.ToWebImage().GetBytes(); 
string imageBase64Data = Convert.ToBase64String(byteImage); 
string imageDataUrl = string.Format("data:image/jpeg;base64,{0}", imageBase64Data); 
charts.chart = imageDataUrl; 

该代码实际上产生一个图形,所有的视觉效果都是正确的。但它错过了X轴上的标签。它似乎将xaxis分成4个部分并标记出来,然后显示所有的条(有11个)。因此7个酒吧没有标签。

我硬编码的数组,它的工作原理,因此错误是用new[] { "...", "..."}代替数组的变量。我认为这与某种类型有关,但我无法找到错误的原因。

我没有使用第三方插件。

+0

最后一行应为“我没有使用第三方插件” - 错字。 – 2015-02-23 13:47:38

+2

您可以自由编辑您的问题以修复该错字。当你在它的时候,你可以修复你的代码的缩进,所以它更具可读性。不多,介意。几乎在那里。 – 2015-02-23 13:49:58

+0

您是否使用调试器在循环之后查看数组? – TaW 2015-02-23 14:34:23

回答