close

在資料庫中用了比較簡單的方法來記錄所有單位

結構大致上如下,此為精簡後的表示,沒用的欄位就沒列出來

01  

大約有200多的單位,也就不一一列出了,意思意思表示一下

畫面上的配置
02  
程式如下

//找指定單位下的所有單位

     protectedvoid Button2_Click(object sender, EventArgs e)

     {

         //只有200多個單位,所以...不管他全部找出來,不含停用單位

         //用迴圈處理,避免頻繁連結資料庫

         DataTable dt_org = _Ford_GetDataTable("SELECT * FROM EIP_organization WHERE SHOW='Y' ORDER BY organization_parent_id ");

 

         //用來存放符合資料的DataTable

         DataTable dt_MatchOrg = dt_org.Clone();

 

         //迴圈處理

         foreach (DataRow dr in dt_org.Rows)

         {

             //逐一取出

             //先找到指定單位

             if (dr["organization_id"].ToString()==TextBox1.Text)

             {

                 dt_MatchOrg.ImportRow(dr);

                 Find_SUB_Org(dt_MatchOrg, dr, dt_org);

              }

         }

 

         GridView1.DataSourceID = "";

         GridView1.DataSource = dt_MatchOrg;

         GridView1.DataBind();

 

     }

    

     privateDataTable Find_SUB_Org (DataTable dt_SubOrg ,DataRow dr_check ,DataTable dt_AllOrg)

     {

         DataTable dt_Collation = dt_SubOrg;

         foreach (DataRow dr in dt_AllOrg.Rows)

         {

             if (dr["organization_parent_id"].ToString()==dr_check["organization_id"].ToString())

             {

                 dt_Collation.ImportRow(dr);

                 //呼叫自己看是不是還有其他資料

                 Find_SUB_Org(dt_Collation, dr, dt_AllOrg);

             }

         }

         return dt_Collation;

     }

 

結果
03  

arrow
arrow
    全站熱搜

    ADOLPH 發表在 痞客邦 留言(0) 人氣()