首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

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

2012-01-16 
c# 简单的遍历问题???,在线等我现在数据结构如下:list_id,suplist_id,list_title,list_type10最新资讯文章

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 allselect 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 行受影响)*/godrop 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;    }} 

热点排行