天下网吧 >> 网吧天地 >> 网吧技术 >> 网吧软件 >> 正文

SQL Server 2005新特性之使用with关键字解决递归父子关系

2008-12-23不详佚名

3.5 以上代码使用了 LocationCollection 集合类,使用泛型集合创建该类(同样位于 APP_Code 目录下):

using System.Collections.Generic;  

 

public class LocationCollection:List<Location>  

{  

     

}  

3.6 APP_Code 目录下创建 DAO 类用于访问数据库,添加必要的命名空间引用:

using System;  

using System.Data;  

using System.Data.SqlClient;  

 

public class DAO  

{  

}  

3.7 编写 GetLocations 方法,返回所在地集合对象(请根据实际情况修改数据库连接字符串):

public LocationCollection GetLocations()  

{  

    LocationCollection locs = new LocationCollection();  

 

    using (SqlConnection conn = new  

        SqlConnection("server=.;uid=sa;pwd=00000000;database=temp;"))  

    {  

        conn.Open();  

 

        SqlCommand cmd = new SqlCommand();  

        cmd.CommandText = "pr_GetLocations";  

        cmd.CommandType = CommandType.StoredProcedure;  

        cmd.Connection = conn;  

 

        SqlDataReader reader = cmd.ExecuteReader();  

                     

        int level = 0;  

        int oldlevel = 1;  

 

        LocationCollection container=new LocationCollection();  

        LocationCollection current = new LocationCollection();  

 

        while (reader.Read())  

        {  

            Location loc = GetLocationFromReader(reader, out level);  

 

            if (level == 0)  

            {  

                locs.Add(loc);  

                container.Add(loc);                   

            }  

            else  

            {  

                if (oldlevel != level)  

                {  

                    container.Clear();  

 

                    foreach (Location l in current)  

                        container.Add(l);  

 

                    current.Clear();  

                    oldlevel = level;  

                }  

 

                current.Add(loc);  

 

                CreateLocation(container, loc);  

            }                 

        }  

    }  

 

    return locs;  

}  

9 7 3 1 2 3 4 5 6 7 4 8 :

本文来源:不详 作者:佚名

声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。文章是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢。 Email:support@txwb.com,系统开号,技术支持,服务联系微信:_WX_1_本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下
  • 本周热门
  • 本月热门
  • 阅读排行