在递归调用时dt.Tables[0].Rows.Count(红色部分)有问题,下一次调用时dt.Tables[0].Rows.Count内容改变,当返回时出错。请问如何解决这个问题。
不要告诉我把循环去了,那样虽然也能实现,但速度比较慢private void setState(string id,string upid,string state) 
        {
            
           if(id!="")
           {
               db1.ExecuteCommand("update manage_site set state="+state+" where id='" + id + "'");
                dt = db1.GetDataSet("select id from manage_site where moduleupid='" + id + "'");
                if (dt.Tables[0].Rows.Count == 0)
                {
                    return;
                }
                else
                {
                    for (int i = 0; i < dt.Tables[0].Rows.Count; i++)
                        setState("", dt.Tables[0].Rows[i]["id"].ToString(),state);
                    db1.ExecuteCommand("update manage_site set state=" + state + " where moduleupid='" + id + "'");
                }
           }
           else
           {
               dt = db1.GetDataSet("select id from manage_site where moduleupid='" + upid + "'");
               if (dt.Tables[0].Rows.Count == 0)
               {
                   return;
               }
               else
               {
                   for (int i = 0; i < dt.Tables[0].Rows.Count; i++)
                       setState("", dt.Tables[0].Rows[i]["id"].ToString(),state);
                   db1.ExecuteCommand("update manage_site set state=" + state + " where moduleupid='" + upid + "'");
               }               
           }
        }