要做的是一个查询节点
因为对数据库不清楚
所以我都用现成的存储过程了
比如
-0
-1
-5
-9
-2
-6
-3
-7
-8
-4用存储过程 exec internal_listobjects_for_host 3
就能得到
7
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
因为对数据库不清楚
所以我都用现成的存储过程了
比如
-0
-1
-5
-9
-2
-6
-3
-7
-8
-4用存储过程 exec internal_listobjects_for_host 3
就能得到
7
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
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货