所以我有這張表的名稱和我用於族譜網站的所有祖先的出生/死亡日期。關鍵是ID,所有孩子的ParentID項目將被設置爲與父母的ID相同。使用sql命令來查找記錄 - sql中的樹結構
ID - int (key)
FirstName - string
Lastname - string
Born - int
Died - int
ParentID - int
hasChildren - bool
我想表明它在某種類型的樹結構(這是另一個問題後) - 現在我只是顯示在GridView他們。我在每行的分支開始處都有一個按鈕。當您點擊某人記錄上的分支時,它會調用select函數來檢索所選記錄的ID,以便我可以使用SELECT命令來搜索所有記錄,並使用與所選記錄的ID相匹配的ParentID。這樣做,我將重新填充所選記錄的所有子項(父項)的網格。因爲我不想顯示在網格中的ID和PARENTID,我可以使用無法恢復:
GridViewRow row = GridView1.Rows[GridView1.SelectedIndex];
什麼,我腦子裏想的是一樣的東西:
SqlDataSource ds = (SqlDataSource)GridView1.DataSourceObject;
string selectstring = "SELECT [ID],[FirstName],[MiddleName],[LastName],[BirthDate],[DeathDate],[ParentID],[hasChild] FROM [test2].[dbo].[Geneology] where ParentID = " + x;
SqlDataSource2.SelectCommand = selectstring;
其中x是所選記錄ID的字符串。我似乎無法弄清楚如何檢索選定記錄的ID,而不顯示在gridview中。我在創建數據源時選擇了所有列,但隱藏了ID和ParentID。現在它們不包含在gridview的行中。有關如何去做這件事的任何想法?我希望這解釋得很好。
OK - 我修好了。我必須將DataKey設置爲ID,以便GridView.SelectedValue返回ID。它的工作現在。我只需要弄清楚如何返回一個級別,而不用重新填充所有記錄的網格。
做一個谷歌搜索喬Celko,你會想出一些偉大的文章和[例子](http://www.ibase.ru/devinfo/DBMSTrees/sqltrees.html) –