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

نام تاپیک: پر کردن سلسله مراتبی tree view از sql server

  1. #1
    کاربر دائمی آواتار f_g1348
    تاریخ عضویت
    آبان 1387
    محل زندگی
    اهواز
    پست
    551

    پر کردن سلسله مراتبی tree view از sql server

    سلام
    من یه راهنمایی می خواهم.
    می خواهم یه tree view تعریف کنم که بصورت پویا از sqlserver2005 پر بشه .
    نکته اینجاست که می خواهم بصورت سلسله مراتبی باشه بدین صورت که بعضی از گره ها گره اصلی و بعضی دیگر زیر گره .
    کلا من می خواهم این قابلیت در برنامه ام باشه که به کاربر امکان تعریف online گره کنم که در دیتا بیس ذخیره بشه.
    نمی دونم فیلد های جدول را چطور تعریف کنم که بصورت اصلی و زیر گروه باشد و چطور در برنامه در tree view قرار دهم.
    ممنون می شم کسی کمک کنه.

  2. #2
    کاربر دائمی آواتار Happy_davood
    تاریخ عضویت
    دی 1383
    محل زندگی
    تبریز
    سن
    44
    پست
    306

    نقل قول: پر کردن سلسله مراتبی tree view از sql server

    ساختار بانک اطلاعاتی رو به این صورت پیشنهاد می کنم .

    NodeCode
    NodeTitle
    ParentNodeCode
    خوب من خودم از این روش استفاده می کنم . یعنی هر گره باید بدون که زیر مجموعه کدوم گره قرار داره .

    این هم کد برای پر کردن درخت :

    this.treeViewStockClasses.Nodes.Clear();

    System.Data.SqlClient.SqlCommand sqlCommand = new System.Data.SqlClient.SqlCommand();
    sqlCommand.Connection = sqlConnection;
    sqlCommand.CommandType = CommandType.Text;
    sqlCommand.CommandText = "SELECT * FROM Nodes WHERE NodeCode <> 0";

    System.Data.SqlClient.SqlDataAdapter SqlDataAdapter = new System.Data.SqlClient.SqlDataAdapter();
    SqlDataAdapter.SelectCommand = sqlCommand;

    this.DataTableNodes = new DataTable();

    SqlDataAdapter.Fill(DataTableNodes);

    this.treeViewStockClasses.BeginUpdate();
    for (int i = 0; i < this.DataTableNodes.Rows.Count; i++)
    {
    if (this.DataTableNodes.Rows[i]["ParentNodeCode"].ToString() == "0")
    {
    this.treeViewStockClasses.Nodes.Add(this.DataTable Nodes.Rows[i]["NodeCode"].ToString(), this.DataTableNodes.Rows[i]["NodeTitle"].ToString());
    this.AddNode(this.treeViewStockClasses.Nodes[this.treeViewStockClasses.Nodes.Count - 1]);
    }
    }
    this.treeViewStockClasses.EndUpdate();



    private void AddNode(System.Windows.Forms.TreeNode CurrentNode)
    {
    for (int i = 0; i < this.DataTableNodes.Rows.Count; i++)
    {
    if (this.DataTableNodes.Rows[i]["ParentNodeCode"].ToString() == CurrentNode.Name.ToString())
    {
    CurrentNode.Nodes.Add(this.DataTableNodes.Rows[i]["NodeCode"].ToString(), this.DataTableNodes.Rows[i]["NodeTitle"].ToString());
    this.AddNode(CurrentNode.Nodes[CurrentNode.Nodes.Count - 1]);
    }
    }
    }


    البته این روش کاملاً ابتکاری هست و من خودم ایجادش کردم . شاید روش های بهتری هم باشه . البته الگوریتم یه الگوریتم بازگشتی ساده ست .

  3. #3
    کاربر دائمی آواتار f_g1348
    تاریخ عضویت
    آبان 1387
    محل زندگی
    اهواز
    پست
    551

    نقل قول: پر کردن سلسله مراتبی tree view از sql server

    با تشکر از شما دوست عزیز
    فقط یه سوال چون من می خواهم این برنامه را با vb.net بنویسم بعضی از این دستورات را در c نمی دانم اگر معادل vb.net آن را دارید ممنون می شوم .
    در غیر اینصورت لطفا بگویید که پارامتر addnode دقیقا چیه و معادلش در vb.net چیه ؟
    با تشکر

  4. #4
    کاربر دائمی آواتار Happy_davood
    تاریخ عضویت
    دی 1383
    محل زندگی
    تبریز
    سن
    44
    پست
    306

    نقل قول: پر کردن سلسله مراتبی tree view از sql server

    دوست عزیز این برنامه از دو تیکه تشکیل شده . تیکه اول الگوریتم بازگشتی رو راه اندازی می کنه . تیکه دوم هم همون تابه AddNode هست . پس AddNode ارتباطی به C#‎ نداره و یه تابع معمولی هست که بصورت بازگشتی خودش رو فراخوانی می کنه .

  5. #5
    کاربر دائمی آواتار f_g1348
    تاریخ عضویت
    آبان 1387
    محل زندگی
    اهواز
    پست
    551

    نقل قول: پر کردن سلسله مراتبی tree view از sql server

    با تشکر از راهنمایی شما
    شرمنده ولی treeviewstockclasses چیه ?

  6. #6
    کاربر دائمی آواتار Happy_davood
    تاریخ عضویت
    دی 1383
    محل زندگی
    تبریز
    سن
    44
    پست
    306

    نقل قول: پر کردن سلسله مراتبی tree view از sql server

    ای بابا ای چه سئوالیه ! می خواستید چی باشه !؟
    خوب treeViewStockClasses همون کنترل TreeView هست که از ToolBox انداختید روی فرم دیگه !

  7. #7

    نقل قول: پر کردن سلسله مراتبی tree view از sql server

    سلام
    غیر از روش های معمول و قدیمی که اکثرا ابتکاری هم هستند و به روش های مختلفی پیاده سازی می شوند، اگر از sql server 2008 استفاده می کنید، نوع داده جدیدی در این زمینه به آن اضافه شده که برای پیاده سازی یک چنین فرایند هایی است. نام این نوع داده جدید hierarchyid می باشد که اطلاعات بیشتر در این مورد را می توانید در این لینک مشاهده کنید./
    موفق باشید

    مجموعه آموزشی Asp.Net Core Mvc کاملا به زبان فارسی(21 ماژول و 15 ساعت فیلم آموزشی همراه با سورس کامل تمرینات و پروژه عملی انجام شده در طول آموزشی)
    مشاهده جزئیات در آدرس http://www.mkiani.ir/blog/content/53084


    وب سایت : http://www.mkiani.ir
    پست الکترونیک : mkiani3000@gmail.com

    موفق و پیروز باشید.
    مهدی کیانی


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

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