首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

求大神过来指导

2014-04-19 
求大神过来指点 string strsql select sum(Months_jihua) Months_jihua,sum(HJ) HJ,Months from s_zhgl

求大神过来指点
 string strsql = "select sum(Months_jihua) Months_jihua,sum(HJ) HJ,Months from s_zhgl_jihua_fysj where years=to_char(getdate(),'yyyy') group by Months order by Months asc ";
        DataSet ds = hp.ExecuteDataSet(strsql);
        int lastmonths = 1;
        int i;
        for (i = 0; i < 12; i++)
        {
            int months = lastmonths + i;
            if (ds.Tables[0].Rows[i]["Months"] != "" || months == Convert.ToInt32(ds.Tables[0].Rows[i]["Months"]))
            {
                string Months = (ds.Tables[0].Rows[i]["Months"].ToString() + "月");
                string MONTHS_JIHUA = (ds.Tables[0].Rows[i]["MONTHS_JIHUA"].ToString());
                string HJ = (ds.Tables[0].Rows[i]["HJ"].ToString());
                Chart1.Series[0].Points.AddXY(Months, MONTHS_JIHUA);
                Chart1.Series[1].Points.AddXY(Months, HJ);
                Chart1.Series[2].Points.AddXY(Months, MONTHS_JIHUA);
                Chart1.Series[3].Points.AddXY(Months, HJ);
            }
            else
            {
                string month = (months + 1).ToString() + "月";
                Chart1.Series[0].Points.AddXY(month, "0");
                Chart1.Series[1].Points.AddXY(month, "0");
                Chart1.Series[2].Points.AddXY(month, "0");
                Chart1.Series[3].Points.AddXY(month, "0");
            }


上面的代码是在查月份 但是数据行有可能没有12行,即没有12个月的数据。如我现在只有1,2,3,4,5,6,9月的数据。我想做判断,没有的月份为空。但是这样做判断时,报错:”在位置 7 处没有任何行。“
求大神求指点,是不是ds.Tables[0].Rows[i]["Months"] != "" || months == Convert.ToInt32(ds.Tables[0].Rows[i]["Months"])这里判断有问题?如果是怎么让他判断行为空时进入else而不是报错”在位置 7 处没有任何行。“?
把循环次数改成 dataset中table的行数
[解决办法]
你可以这样for (i = 0; i < 12; i++)这里别循环12个月你直接循环你的数据集这样都有数据了。你在循环判断下那个月没没数据补充下0,在输出你的图表控件就可以了。

热点排行