在数据库里有一个Bay表,现在用下面的代码读取数据库到 ds.Tables[0],然后遍历 ds.Tables[0]统计表中值为1的总数。
 ds.Tables[0]遍历应该怎么实现? 朋友给了一段代码,但是有点问题。高手请帮帮忙~
string SqlStr1 = "select * from dbo.Bay ";
SqlDataAdapter dp1 = new SqlDataAdapter(SqlStr1, con);
DataSet ds1 = new DataSet();
dp1.Fill(ds1);

解决方案 »

  1.   


                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    if (ds.Tables[0].Rows[i][列索引].ToString() == "1")
                    {
                        //dosometing
                    }
                }
      

  2.   

    SqlDataAdapter 可以直接填充datatable的。
    SqlDataAdapter dp1 = new SqlDataAdapter(SqlStr1, con);
    DataTable dt1 = new DataTable ();
    dp1.Fill(dt1);DataRow[] dataRows = dt1.select("id = 2");然后你自己处理datarow[]
      

  3.   

    foreach(DataRow dr in ds.Tables[0].Rows)
      

  4.   


    就这样遍历循环,也可以直接统计行啊,楼主,你的那个只是将数据绑定到dataset,代码没问题,只是没有实现统计啊!
      

  5.   


    实际上一楼和三楼的方法都一样,不过三楼还少一点代码:
    foreach(DataRow dr in ds.Tables[0].Rows)
    {
         if(dr[索引号].tostring() == "1")
         {
              你要实现的代码
         }
    }
      

  6.   

    [code=C#]
    Var data = ds1.Tables[0].AsEnumerable().Where(r => r["你的列"].ToString() == "1");int result = data.Count();
      

  7.   


    Var data = ds1.Tables[0].AsEnumerable().Where(r => r["你的列"].ToString() == "1");int result = data.Count();
      

  8.   

     foreach (DataRow dr in ds.Tables[0].Rows)
                    {
                      this.lblLoginName.Text =  dr["LoginName"].ToString();
                    }