要做的是一个查询节点
因为对数据库不清楚
所以我都用现成的存储过程了
比如
-0
  -1
    -5
      -9
  -2
    -6
  -3
    -7
    -8
  -4用存储过程 exec internal_listobjects_for_host 3
就能得到 

8
两条记录
可是我现在想要遍历所有的
调用存储过程是CreateTable(g, j,0);这个方法
这样做太慢了
有什么方法吗
我觉得要么直接把所有节点取到
for循环一下估计速度会快很多
无奈 对表不了解不敢自己写SQL
有啥办法吗        #region GetAllNodeText
        private void GetAllNodeText(string str)
        {
            if ("FAB0_MJP_FAC".Contains(str.ToUpper()))
            {
                arrfilter.Add("FAB0_MJP_FAC");
            }
    
            GetAllNodeTextnode(0,2, str);
         
        }
        #endregion         #region GetAllNodeTextnode
        private void GetAllNodeTextnode(int g,int j,string str)
        {
            DataTable newdt;
            newdt = CreateTable(g, j,0);
            DataView newdv = newdt.DefaultView;
            if (g > 3)
            {
                newdv.Sort = "container_id";
            }
            else
            {
                newdv.Sort = "host_id";
            }
             DataRowView[] newarrDRV = newdv.FindRows(j);
             foreach (DataRowView newdrv in newarrDRV)
             {
                 if (newdrv.Row["realname"].ToString().ToUpper().Contains(str.ToUpper()))
                 {
                     arrfilter.Add(newdrv.Row["realname"].ToString());
                 }
                 
                GetAllNodeTextnode(g + 1, Convert.ToInt32(newdrv.Row["gobject_id"].ToString()), str);               
                    
             }
            
        }
        #endregion