此算法所用數據庫爲整個河南省地區(省、市、縣)
/* * 無限級樹算法 */ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Data.SqlClient; namespace ConApp1 { class Program { static void Main(string[] args) { //Test.Dt(); TestTree("0", 0); Console.ReadKey(true); } /* * 無限級樹算法 */ static DataTable dt = Test.Dt(); static int No = dt.Rows.Count; public static void TestTree(string f_id, int level) { int newlevel = 0; foreach (DataRow item in dt.Rows) { if (item.ItemArray[3].ToString().Trim() == f_id) { for (int m = 0; m < level; m++) { Console.Write("{0}","--"); } newlevel = level + 1; Console.WriteLine("{0}", item.ItemArray[2].ToString()); TestTree(item.ItemArray[1].ToString(), newlevel); } } } } /// <summary> /// 數據操作類 /// </summary> static class Test { public static SqlConnection Con() { SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=Area;Integrated Security=True"); con.Open(); return con; } public static DataTable Dt() { string sqlStr = "select * from [dbo].[Area]"; SqlCommand cmd = new SqlCommand(sqlStr, Con()); DataTable dt = new DataTable(); SqlDataAdapter da = new SqlDataAdapter(cmd); da.Fill(dt); return dt; } } }
首先要引用兩個命名空間: using System.Data.Linq.Mapping; using System.Data.Linq; //右擊“引用”選擇“添加引用” /* * DataContext類型(數據上下文)是Syste