我现在从数据库中读出的数据显示在DATAGRID中,现在有一列有3种状态选择(正常,断开,报警),我现在想统计其中的“断开”状态出现的次数,然后显示在ASPX页面中,该怎么做啊?我做了个程序,但好象不对。
string coursecount;
c1=0;
foreach(DataGridItem di in Datagrid1.Items) // DataGridItem 表示 DataGrid中的行 

courseCount = (di.Cells[2].Text).ToString();// DataGridItem.Cells[2] 表示 行中的第3个单元格 
for(int i=0;i<(di.Cells[2].Text).ToString();i++)
{
   if(str[i]=="失败")
{
 c1++;
 Label5.Text="共查到报警信息"+c1+"条";
}
}
}

解决方案 »

  1.   

    如果楼主只显示统计信息用sql就可以了
    select sum(case yourColumnName when '正常' then 1 else 0 end) as 正常,
     sum(case yourColumnName when '断开' then 1 else 0 end) as 断开,
     sum(case yourColumnName when '报警' then 1 else 0 end) as 报警
    from yourTable
      

  2.   

    添加DATAGRID中的DataGrid1_ItemCreated事件
    在页面中定义一个私用变量:c1=0;if(e.Item.Cells[2].Text=="失败")c1++;
    其它的不用我写了吧。
      

  3.   

    happyfamily(FreeHorse)::关键我里面有SQL查询语句啊,我现在是查询的资料显示在DATAGRID中,然后在显示的DATAGRID中统计“失败”的次数啊。
      

  4.   

    franklitian(李天) ::不好意思,我刚学这个2个星期,你能说的详细点么?
      

  5.   

    session["dt"]的结构如下:
    DataTable dt = new DataTable();
    dt.Columns.Add("a");
    dt.Columns.Add("b"); DataRow dr; dr=dt.NewRow(); dr["a"]="是";
    dr["b"]="22"; dt.Rows.Add(dr); dr=dt.NewRow(); dr["a"]="是";
    dr["b"]="22"; dt.Rows.Add(dr);
    dr=dt.NewRow(); dr["a"]="否";
    dr["b"]="22"; dt.Rows.Add(dr); Session["dt"]=dt; this.DataGrid1.DataSource=dt;
    this.DataGrid1.DataBind();private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    { DataTable dt = (DataTable)Session["dt"]; int i;
    int i_result=0;
    if ((e.Item.ItemType == System.Web.UI.WebControls.ListItemType.AlternatingItem)|| (e.Item.ItemType == System.Web.UI.WebControls.ListItemType.EditItem) || (e.Item.ItemType == System.Web.UI.WebControls.ListItemType.Item))
    {
    for (i=0;i<=dt.Rows.Count-1;i++)
    {
    if (dt.Rows[i]["a"]=="是")
    {
    i_result += 1;
    this.Label1.Text = Convert.ToString(i_result);
    }
    }
    }
    }
      

  6.   

    在DataGrid1_ItemCreated事件中变量定义一个i=0;if(e.Item.Cells[2].Text=="失败")
    {i++;
    }
    i就是显示的"失败"的次数
      

  7.   

    我在PAGE——LOAD中写的程序,但还是有错误,麻烦高手在帮忙看看
    string course;
    int c1;

    foreach(DataGridItem di in DataGrid1.Items) // DataGridItem 表示 DataGrid中的行 

    c1=0;
    course = (di.Cells[2].Text).ToString();// DataGridItem.Cells[2] 表示 行中的第3个单元格 
    if(di.Cells[2].Text=="失败")
    {
    c1++;

    }
    } Label1.Text="共查到报警信息"+c1+"条";提示说:使用了未赋值的局部变量“c1”。。实在是不知道怎么办了,麻烦各位了
      

  8.   

    楼上的,如果象你那样改的话,,,输出LABEL。TEXT显示就是::共查到报警信息0条。与IF语句没有关系了啊。
    string course;
    int c1=0;

    foreach(DataGridItem di in DataGrid1.Items) // DataGridItem 表示 DataGrid中的行 

    course = (di.Cells[2].Text).ToString(); 
    if(di.Cells[2].Text=="失败")
    {
    c1++;
    }
    } Label1.Text="共查到报警信息"+c1+"条";