如何在一个DataTable中得到特定id的所有Children? 环境:vs.net2003,sql server2000,c# 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可能我说得不清楚。在oracle里面可以使用select * from a start with id=1connect by id=prior parent来得到所有符合条件的记录,但是sql server不行,我又不想用存储过程,所以想知道在DataTable中有什么简便的做法。 使用DataRelation定义关系属性,使用GetChildRow(具体方法记不清了)得到孩子节点 DataRelation是定义两个DataTable之间的关系,可是我是一个DataTable private DataTable myDataTable = null;private void GetChildrenRows(DataTable dt,string keyField,string parentField,string keyValue){ DataRow[] rows = dt.Select(parentField +"='"+ keyValue +"'"); myDataTable.Rows.Add(rows); for (int i=0;i<rows.Length;i++) { GetChildrenRows(dt,keyField,parentField,rows[i][keyField].ToString()); }}private void GetChildren(){ string sql = "select ..."; //取得DataTable dt ... GetChildrenRows(dt,id,parent,idValue);} C# 合并Excel的Sheet 【初学者求教】请解释下为什么结果是1 如何用button调用dataGridView1_CellClick? 递归 查询重复数 的问题 水晶报表,接着问。。。。 datagrid分页 关于移动行业中sim卡分配管理的问题 查询子字符串 请问?怎样打印出条形码? C# 如何能够截取到程序中所有的事件? 为什么.NET安装后,web项目的运行后,页面上不显示控件? 怎么判断用户输入的是不是中文!
在oracle里面可以使用
select * from a
start with id=1
connect by id=prior parent
来得到所有符合条件的记录,但是sql server不行,我又不想用存储过程,所以想知道在
DataTable中有什么简便的做法。
private void GetChildrenRows(DataTable dt,string keyField,string parentField,string keyValue)
{
DataRow[] rows = dt.Select(parentField +"='"+ keyValue +"'");
myDataTable.Rows.Add(rows);
for (int i=0;i<rows.Length;i++)
{
GetChildrenRows(dt,keyField,parentField,rows[i][keyField].ToString());
}
}private void GetChildren()
{
string sql = "select ...";
//取得DataTable dt
...
GetChildrenRows(dt,id,parent,idValue);
}