环境:
vs.net2003,sql server2000,c#

解决方案 »

  1.   

    可能我说得不清楚。
    在oracle里面可以使用
    select * from a 
    start with id=1
    connect by id=prior parent
    来得到所有符合条件的记录,但是sql server不行,我又不想用存储过程,所以想知道在
    DataTable中有什么简便的做法。
      

  2.   

    使用DataRelation定义关系属性,使用GetChildRow(具体方法记不清了)得到孩子节点
      

  3.   

    DataRelation是定义两个DataTable之间的关系,可是我是一个DataTable
      

  4.   

    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);
    }