DracoDier,
private void BuildingTreeView1()
{
SqlDataAdapter da = new SqlDataAdapter(@"Select NameOriginal, NomerSezona, NomerSerii from Serials", con);
DataSet ds = new DataSet();
da.Fill(ds, "Serials");
foreach (DataRow dr in ds.Tables["Serials"].Rows)
{
TreeNode tn = new TreeNode(dr["NameOriginal"].ToString());
foreach (DataRow dr2 in ds.Tables["Serials"].Rows)
{
TreeNode ctn = new TreeNode(dr2["NomerSezona"].ToString());
foreach (DataRow dr3 in ds.Tables["Serials"].Rows)
{
TreeNode gctn = new TreeNode(dr3["NomerSerii"].ToString());
ctn.Nodes.Add(gctn);
}
tn.Nodes.Add(ctn);
}
treeView1.Nodes.Add(tn);
}
замечательный код, но каждая строчка имеет смысловое определение, может не стоить лепить все в одну кучу
а задуматься как строится дерево, ( думать не запрещается?)
можно пройтись по делая выборку
таким способом: написал чисто интуитивно
foreach (var source in ds.Tables["Serials"].Rows.OfType<DataRow>().Select(a => a["NameOriginal"]).Distinct())
{
var source1 = source;
foreach (var s in ds.Tables["Serials"].Rows.OfType<DataRow>().Where(a=>source1!=null&&(string) a["NameOriginal"]==source1.ToString()).Select(c=>c["Serials"]).Distinct())
{
}
}
можно выбрать каждую корневую ноду как сложный объект и потом строить дерево.
единственное что рвет шаблон это:
автор |
---|
5 Сериал 2 NULL 1х1 6 Сериал 2 NULL 1х2
|