2016-05-21 4 views
0

私は、データベースからいっぱいのTreeViewを持っています。 DBのテーブルには、Id、ParentId、Nameのようなフィールドがあります。データベースから塗りつぶされたTreeViewのノードを削除します。

ParentId - 敷かれているid要素を保存します。 (独立した要素の場合は0)。

ユーザーが削除するノードの名前を入力すると、このノードのすべてのsubChildを削除する必要があります。

選択されていないノード要素をすべて削除するにはどうすればよいですか?

多分再帰?レコードのIDは、さらに削除する必要がある要素の配列で、次にすべてを削除するループ内にありますか?

私の試み削除要素:絵でここ

public void findChild(int selectedId) 
    { 
     DataSet PrSet = PDataset("SELECT Id, ParentID FROM companies"); //get data from database 
     foreach (DataRow dr in PrSet.Tables[0].Rows) 
     { 
      if (int.Parse(dr["ParentID"].ToString()) == SelectedId) 
      { 
       index.Add(int.Parse(dr["Id"].ToString())); //add id to list 
       findChild(int.Parse(dr["Id"].ToString())); 
      } 
     } 
    } 

は、例えば、私は、アバイアのサイトを削除する必要があります。つまり、要素[2、3、4、5、Comp3、Avaya]を削除する必要があります。また、私はデータベースからこの要素を削除する必要があります。

Picture

+0

私の悪い英語を申し訳ありません。私の母国語ではありません。 –

答えて

0

あなたがアプリケーションを参照しているならば、単にデータベースからデータを取得するには、ツリービューアをリセットします。

+0

ありがとうございましたが、再帰を使用してこの問題を解決しました –

+0

コードまたはアプリケーションで削除が完了しましたか – Shon

関連する問題