반응형

다음은 두개의 데이터 베이스에 있는 내용을 TreeView에 Binding하는 소스입니다..
천 번째 데이터 베이스에는 학교의 분류와 그에 해당하는 key값이 들어있고,
두 번째 데이터 베이스에는 해당 key값에 정의된 학교 이름이 있습니다..

SqlDataAdapter adp1 = new SqlDataAdapter("select * from school_category",con);
            
            DataSet ds1 = new DataSet();
            adp1.Fill(ds1);

            string ca = "";

for(int i = 0;i<ds1.Tables[0].Rows.Count;i++)//첫번째 데이터의 rows만큼 반복
            {
                Microsoft.Web.UI.WebControls.TreeNode item = new Microsoft.Web.UI.WebControls.TreeNode();        
item.Text = "ds1.Tables[0].Rows[i][1].ToString()";//Root노드의 텍스트 입력
                item.CheckBox = true;
                this.TreeView1.Nodes.Add(item);//Root 노드 추가

                ca = ds1.Tables[0].Rows[i][0].ToString();//Root노드의 Key값 가져오기

                SqlDataAdapter adp2 = new SqlDataAdapter("select * from school where category="+ca+"",con);
        
                DataSet ds2 = new DataSet();
                adp2.Fill(ds2);

                for(int j = 0;j<ds2.Tables[0].Rows.Count;j++)//두 번째 데이터의 rows만큼 반복
                {
                    Microsoft.Web.UI.WebControls.TreeNode item2 = new Microsoft.Web.UI.WebControls.TreeNode();                               item2.Text = ds2.Tables[0].Rows[j][1].ToString();//자식 노드의 텍스트 입력
                    item2.CheckBox = true;
                    this.TreeView1.Nodes[i].Nodes.Add(item2);//자식 노드 추가
                    //여기서 주의 할 점은 this.TreeView1.Nodes[i].Nodes.Add(item2);에서 j 가 아니라 i의 노드에 추가 한다는 것입니다..만약 j로 입력하면 에러가 발생합니다..주의하시길..
                }
            }

 

<출처 : Devpia>

반응형

+ Recent posts