PDA

View Full Version : در رابطه با ساختار treeview و خواندن مقدار از جدول



nooshin609
شنبه 11 دی 1395, 23:12 عصر
سلام دوستان
توی کد زیر یه treenode که مقدار Dot Net Perls به عنوان مادر هست و دوتا فرزند داره،بغل والد یه بعلاوه هست که با باز کردنش فرزنداش نشون داده میشه!!


TreeNode node2 = new TreeNode("C#");
TreeNode node3 = new TreeNode("VB.NET");
TreeNode[] array = new TreeNode[] { node2, node3 };
//
// Final node.
//
treeNode = new TreeNode("Dot Net Perls", array);
treeView1.Nodes.Add(treeNode);


حالا سوالم اینه حالت بالارو چطوری میتونم بصورت داینامیک از table بگیرم؟؟4تا tableدارم که ازوالد تا نتیجه میخوام به شکل بالا برم ولی چون نمیدونم توی table چندتا و چه چیزی هست نمیتونم عین بالا عمل کنم.لطفا در صورت امکان لینک ندین،لینک های زیادی جستجو کردم و به دلیل اینکه هرجا با یه سبک نوشته بود، زیاد سر در نیاوردم.ممنون میشم راه حل ساده تر بفرمایید
با تشکر

یونس ابراهیمی
یک شنبه 12 دی 1395, 12:13 عصر
آموزش اول کلیک کنید (http://www.w3-farsi.com/%d9%be%d8%b1-%da%a9%d8%b1%d8%af%d9%86-treeview-%d8%a8%d8%a7-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%d8%a7%d8%b2-%d8%af%d8%a7%d8%af%d9%87-%d9%87%d8%a7%db%8c-%d8%a8%d8%a7%d9%86%da%a9-%d8%a7%d8%b7/)

یا


با فرض اینکه یک دیتابیس با نام Person داشته باشید و این دیتابیش دارای یک جدول با نام Table1 به صورت زیر باشد :
http://www.w3-farsi.com/wp-content/uploads/2015/07/populate-treeview-sqlserver.png
داده هایی را در جدول به صورت زیر وارد می کنیم :
http://www.w3-farsi.com/wp-content/uploads/2015/07/populate-treeview-sqlserver-002.png
حال می خواهیم داده های ستون ID از جدول را در گره مادر و ستون FirstName را در گره فرزند بریزیم. برای این کار کافیست که در رویداد Load فرم کدهای زیر را بنویسیم :


private void Form1_Load(object sender, EventArgs e)
{
treeView1.Nodes.Clear();

SqlConnection connection1 = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\arta \Documents\Person.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
SqlCommand command1 = new SqlCommand("select * from Table1");
command1.Connection = connection1;
command1.Connection.Open();
SqlDataReader reader1 = command1.ExecuteReader();

for (int num1 = 0; reader1.Read(); num1++)
{
treeView1.Nodes.Add(reader1[0].ToString());
int num3 = reader1.FieldCount - 1;
for (int num2 = 1; num2 <= num3; num2++)
{
treeView1.Nodes[num1].Nodes.Add(reader1[num2].ToString());
}
}
} حال برنامه را اجرا و نتیجه را مشاهده کنید :
http://www.w3-farsi.com/wp-content/uploads/2015/07/populate-treeview-sqlserver-001.png

codedeveloper
یک شنبه 12 دی 1395, 15:33 عصر
بعد از اینکه اطلاعات رو از sql واکشی کردین و در datatable یا حالا هر چی ریختین میتونید از این کد برای ست کردنش تو tree استفاده کنید



TreeNode node;
foreach (DataRow row in table.Rows)
{
node = new TreeNode();
node.Text = row["title"].ToString();
node.Value = row["id"].ToString();
//you can affect the node.NavigateUrl

node.PopulateOnDemand = true;
TreeView1.Nodes.Add(node);
}

gama_slv
یک شنبه 12 دی 1395, 17:52 عصر
برای استفاده از treeview معمولا از جداول self refrensingاستفاده میکنم.ساختار جدول
Id
Parent id
Name
برای نمایش بصورت درختی از هر کامپونتی استفاده کنید به راحتی انجام میشه.خود treeviewویژال هم از این نوع جدول ها استفاده میکنم.