专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C#

c# 简单的遍历有关问题?

发布时间:2011-06-21 11:31:37 文章来源:www.iduyao.cn 采编人员:星星草
c# 简单的遍历问题???,在线等
我现在数据结构如下:

list_id,suplist_id,list_title,list_type
  1 0 最新资讯 文章
  2 0 产品分类 文章
  3 2 农机产品 图片
  4 2 产品新闻 文章
  5 3 小型农机 图片
  6 5 小型机型 图片


我想实现只要本身或子级存在类型为图片的就显示出来

请各位帮帮忙吧




------解决方案--------------------
SQL code
create table tb(list_id int,suplist_id int,list_title nvarchar(10),list_type nvarchar(10))
insert into tb select 1,0,'最新资讯','文章'
insert into tb select 2,0,'产品分类','文章'
insert into tb select 3,2,'农机产品','图片'
insert into tb select 4,2,'产品新闻','文章'
insert into tb select 5,3,'小型农机','图片'
insert into tb select 6,5,'小型机型','图片'
go
;with cte as(
select * from tb where list_type='图片'
union all
select a.* from tb a inner join cte b on a.list_id=b.suplist_id
)select distinct * from cte order by list_id
/*
list_id     suplist_id  list_title list_type
----------- ----------- ---------- ----------
2           0           产品分类       文章
3           2           农机产品       图片
5           3           小型农机       图片
6           5           小型机型       图片

(4 行受影响)

*/
go
drop table tb

------解决方案--------------------
C# code
public partial class _Default : System.Web.UI.Page
{
    Dictionary<int, string> dic;
    DataTable dt;
    protected void Page_Load(object sender, EventArgs e)
    {
        dic = new Dictionary<int, string>();
        dt = GetDataTable();
        DataRow[] row = dt.Select("list_type='图片'");
        foreach (DataRow r in row)
        {
            dic.Add(Convert.ToInt32(r["list_id"]), r["list_title"].ToString());
            GetType(Convert.ToInt32(r["suplist_id"]));
        }
        foreach (KeyValuePair<int, string> k in dic)
            Response.Write(k.Key + "==" + k.Value + "<br/>");
    }
    public void GetType(int suplistid)
    {
        DataRow[] row = dt.Select("list_id=" + suplistid);
        foreach (DataRow r in row)
        {
            if (!dic.ContainsKey(Convert.ToInt32(r["list_id"])))
                dic.Add(Convert.ToInt32(r["list_id"]), r["list_title"].ToString());
            if (Convert.ToInt32(r["suplist_id"]) > 0)
                GetType(Convert.ToInt32(r["suplist_id"]));
        }
    }
    public DataTable GetDataTable()
    {
        DataTable dt = new DataTable();
        using (SqlConnection conn = new SqlConnection())
        {
            conn.ConnectionString = ConfigurationManager.ConnectionStrings["testConnection"].ConnectionString;
            SqlDataAdapter da = new SqlDataAdapter("select list_id,suplist_id,list_title,list_type from test", conn);
            da.Fill(dt);
        }
        return dt;
    }
}
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: