نمایش نتایج 1 تا 6 از 6

نام تاپیک: نمایش ساختار درختی از دیتابیس در TreeView در C#‎ WinForm .Net 4

  1. #1

    Question نمایش ساختار درختی از دیتابیس در TreeView در C#‎ WinForm .Net 4

    با سلام
    یک برنامه اپلیکن win form در C#‎‎ fh با دیتابیس sql2008 دارم (Table: tblGroup : id , pid , title) که مقدار pid نودهای root برابر با null است.
    یک جدول گروه Group بعنوان گروه دارم که باید اونو در یک treeView نمایش بدهم و چون تعداد استفاده اش زیاده باید اونو در یک تابع پیاده سازی کنم
    تعداد زیادی مثال در اینترنت هست ولی نمیدونم چرا وقتی میارمش توی برنامه ایراد میگیره و درست کار نمیکنه، مثلا .value در .net 4 نیست و tag بجاش هست و...
    الان به یک تابع نیاز دارم که در یک برنامه اپلیکن win form در C#‎‎ .net4 قابل استفاده باشه و نام treeview , Dataset را بهش بدهیم و خودش treeview را درست کند.
    و یا اینکه یه مثال و نمونه لطفا معرفی کنید، البته الان از RadTreeView تلریک استفاده میکنم و درست هم کار میکند، ولی بنا به دلایلی نمیخوام از تلریک استفاده کنم و ترجیح میدم از ابزار استاندارد ویندوز استفاده کنم.

    نکته: از VS 2013 و C#‎ , .Net 4 , Sql 2008 R2 استفاده میکنم
    با تشکر
    عکس های ضمیمه عکس های ضمیمه
    آخرین ویرایش به وسیله FirstLine : سه شنبه 21 بهمن 1393 در 10:04 صبح دلیل: VS 2013

  2. #2

    نقل قول: نمایش ساختار درختی از دیتابیس در TreeView در C#‎ WinForm .Net 4

    سلام
    اگر شما DataTable داری که هیچ ، در غیر اینصورت این متد یه دیتاتیبل برمیگردونه
    * کانکشن استرینگ رو اصلاح کن


    private DataTable GetDataTable()
    {
    SqlConnection con = new SqlConnection("Data Source=127.0.0.1;Initial Catalog=YourTable;Persist Security Info=True;User ID=sa;Password=11111");
    SqlCommand cmd = new SqlCommand();
    SqlDataReader dr;
    DataTable dt = new DataTable();
    cmd.Connection = con;
    cmd.CommandText = "SELECT * FROM tblgroup ORDER BY pid, id";
    con.Open();
    dr = cmd.ExecuteReader();
    dt.Load(dr);
    con.Close();
    return dt;
    }



    این متد هم بر اساس دیتا تیبل ، TreeView رو پر میکنه
    * اسم TreeView و DataTable رو بعنوان پارامتر باید بهش پاس بدی
    ** مطلبی که واضحه NewNode.Name = row["ID"].ToString(); نباید تو متد تغییر کنه ، چون گره های Parentاز این طریق پیدا میشن.

    private void FetchData(TreeView Tree, DataTable dt)
    {
    Tree.Nodes.Clear();
    foreach (DataRow row in dt.Rows)
    {
    if (row["PID"].ToString() == string.Empty)
    {
    TreeNode NewNode = new TreeNode();
    NewNode.Name = row["ID"].ToString();
    NewNode.Text = row["Title"].ToString();
    NewNode.Tag = row["ID"].ToString();

    Tree.Nodes.Add(NewNode);
    }
    else
    {
    TreeNode[] tn ;
    tn = Tree.Nodes.Find(row["PID"].ToString(), true);

    TreeNode NewNode = new TreeNode();
    NewNode.Name = row["ID"].ToString();
    NewNode.Text = row["Title"].ToString();
    NewNode.Tag = row["ID"].ToString();

    if (!(tn[0] == null))
    {
    tn[0].Nodes.Add(NewNode);
    }
    }
    }

    }



    نحوه فراخوانی هم به این شکل میشه


    FetchData(treeView1, GetDataTable());


    * فقط اسم دیتابیس ، جدول و همچنین فیلد ها رو مجددا کنترل کنید.




    موفق باشید
    قوانین سایت برنامه نویس [ به سوالات از طریق پیام خصوصی پاسخ داده نمی شود ]

  3. #3
    کاربر دائمی آواتار ghasem110deh
    تاریخ عضویت
    اردیبهشت 1393
    محل زندگی
    تهران
    پست
    1,148

    Exclamation نقل قول: نمایش ساختار درختی از دیتابیس در TreeView در C#‎‎ WinForm .Net 4

    آقای آشتیانی ، من از این کد استفاده کردم :

    treeView1.Nodes.Clear();                SqlConnection connection1 = new SqlConnection("Data Source=.;Initial Catalog=Pooya;Integrated Security=True");
    SqlCommand command1 = new SqlCommand("select Cam,Mod,Company,Qual,Price from Tcam");
    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 = 0; num2 <= num3; num2++)
    {
    treeView1.Nodes[num1].Nodes.Add(reader1[num2].ToString());
    }
    }


    اما نمیدونم چرا تو بعضی از جداول انتخاب فیلد جواب نمیده !!؟ (عکس ضمیمه)
    منظورم : مثلا توی مشخصات دوربین جدول Id, Cod, Pic و ... دیگه هم هست که انتخاب نکردم ؛ اما مشکلی بوجود نیومده
    ولی توی مشخصات مشتری بجز * هر چیز دیگه ای بنویسم تری ویو خالیه !
    دقیقا همین کد رو مینویسم و با نام جدول و فیلدهای خودش ولی خالیه !؟
    عکس های ضمیمه عکس های ضمیمه

  4. #4
    کاربر دائمی آواتار fakhravari
    تاریخ عضویت
    دی 1388
    محل زندگی
    بوشهر
    سن
    34
    پست
    8,029

    نقل قول: نمایش ساختار درختی از دیتابیس در TreeView در C#‎ WinForm .Net 4

     private void button1_Click(object sender, EventArgs e)        {
    try
    {
    DataSet Ds = DAL.FillDataTable("SELECT ID, Name, FileName,ParentID FROM tree", false);
    Ds.WriteXml("tree.xml");
    MessageBox.Show("Oki");
    }
    catch { MessageBox.Show("Eroor"); }
    }





    private static DataSet D1 = new DataSet();
    private void Form1_Load(object sender, EventArgs e)
    {
    DataSet PrSet = new DataSet();
    PrSet.ReadXml(@"tree.xml");
    D1 = PrSet;


    Load_tree();
    }
    public void Load_tree()
    {
    treeView1.Nodes.Clear();
    treeView1.ImageList = imageList1;
    treeView1.ItemHeight = 30;


    foreach (DataRow dr in D1.Tables[0].Rows)
    {
    if (Convert.ToInt32(dr["ParentID"]) == 0)
    {
    TreeNode tnParent = new TreeNode();
    tnParent.Text = dr["Name"].ToString();
    tnParent.Tag = dr["FileName"].ToString();
    int value = Convert.ToInt32(dr["ID"].ToString());
    tnParent.ImageIndex = 2;
    tnParent.SelectedImageIndex = 2;
    tnParent.Expand();
    treeView1.Nodes.Add(tnParent);
    FillChild(tnParent, value);
    }
    }
    }
    public int FillChild(TreeNode parent, int ID)
    {
    var dv = D1.Tables[0].DefaultView;
    dv.RowFilter = "ParentID =" + ID;
    var newDS = new DataSet();
    var newDT = dv.ToTable();
    newDS.Tables.Add(newDT);


    if (newDS.Tables[0].Rows.Count > 0)
    {
    foreach (DataRow dr in newDS.Tables[0].Rows)
    {
    TreeNode child = new TreeNode();
    child.Text = dr["Name"].ToString().Trim();
    child.Tag = dr["FileName"].ToString();
    int temp = Convert.ToInt32(dr["ID"].ToString());
    child.ImageIndex = 1;
    child.SelectedImageIndex = 1;
    child.Collapse();


    try
    {
    parent.NodeFont = new System.Drawing.Font("B Mitra", 11, System.Drawing.FontStyle.Bold);
    parent.ForeColor = Color.Black;
    }
    catch { }


    parent.Nodes.Add(child);
    FillChild(child, temp);
    }
    return 0;
    }
    else
    { return 0; }
    }


    private static string Adress = "";        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
    {
    listBox1.Items.Clear();
    try
    {
    Adress = treeView1.SelectedNode.Tag.ToString();
    if (Adress == "$") return;


    if (File.Exists(Adress))
    { pdfDocument1.FilePath = (Adress); }
    else { MessageBox.Show("فایل موجود نمی باشد : " + Adress); }


    for (int i = 1; i <= pdfDocument1.PageCount - 1; i++)
    {
    listBox1.Items.Add(i);
    }
    }
    catch { }
    }

  5. #5
    کاربر دائمی آواتار ghasem110deh
    تاریخ عضویت
    اردیبهشت 1393
    محل زندگی
    تهران
    پست
    1,148

    نقل قول: نمایش ساختار درختی از دیتابیس در TreeView در C#‎ WinForm .Net 4

    سلام
    یه عکس از خروجی میزارین ...
    راستی میشه همزمان از دو تا جدول خوند ؟
    یعنی نود پدر اسامی انبارها (جدول انبار) رو نشون بده و در نود فرزند کالاها رو (جدول کالا) ---> و زیر مشخصات کالاها !

  6. #6
    کاربر جدید آواتار mostafab2m
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    مشهد
    پست
    26

    نقل قول: نمایش ساختار درختی از دیتابیس در TreeView در C#‎ WinForm .Net 4

    آقای Mohammad.Ashtiani میشه واسه وب هم راهنمایی کنید

تاپیک های مشابه

  1. پاسخ: 5
    آخرین پست: پنج شنبه 26 آبان 1390, 14:15 عصر
  2. چاپ ساختار درختی treeview
    نوشته شده توسط hossein.e در بخش کامپوننت ها و ابزارهای کاربردی در VB6
    پاسخ: 2
    آخرین پست: شنبه 28 فروردین 1389, 13:01 عصر
  3. سوال: نمایش یک جدول در ساختار درختی
    نوشته شده توسط bmanfy در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 5
    آخرین پست: شنبه 29 فروردین 1388, 23:51 عصر
  4. مشکل در نمایش ساختار درختی دیتابیس و جدول ها
    نوشته شده توسط hdv212 در بخش C#‎‎
    پاسخ: 6
    آخرین پست: یک شنبه 23 اردیبهشت 1386, 16:59 عصر
  5. چاپ ساختار درختی و استفاده از treeview در گزارش
    نوشته شده توسط odiseh در بخش برنامه نویسی در 6 VB
    پاسخ: 0
    آخرین پست: چهارشنبه 25 مرداد 1385, 14:22 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •