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

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

  1. #1
    کاربر دائمی آواتار water_lily_2012
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    اصفهان
    پست
    659

    ذخیره TreeView در دیتابیس

    سلام

    من یه TreeView دارم که حدود چند هزار Node داره البته فکر نکنم تعداد فرقی بکنه
    حالا می خوام به ترتیب این Node ها را وارد دیتابیس اکسس کنم.
    برعکس این روش را می دونم ولی ریختن تو دیتابیس را بلد نیستم
    یعنی بلد نیستم node را به ترتیب بخونم و وارد جدول کنم.

  2. #2
    کاربر دائمی آواتار fjm11100
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    تهران
    سن
    43
    پست
    658

    نقل قول: ذخیره TreeView در دیتابیس

    اگر درختت شاخه ها و زیر شاخه هایی با عمق متفاوت داره توصیه میکنم از نوع xml استفاده کنی که نمیدونم اکسس ساپورتش میکنه یا نه وگرنه مجبوری اول یه فکری به حال روش ذخیره کردنش کنی بعد فکری به حال نحوه ذخیره سازیش کنی.

  3. #3
    کاربر دائمی آواتار water_lily_2012
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    اصفهان
    پست
    659

    نقل قول: ذخیره TreeView در دیتابیس

    بله هر شاخه تعداد خاص خودش را داره و تعداد خاص متفاوت هستند
    ولی چرا اکسس پشتیبانی نمی کنه. من الان اطلاعات را دستی وارد جدول کرده ام ولی برنامه از جدول می خونه و مشکلی هم ندارم
    حتی می تونم یه Node را هم با آیکن در جدول ذخیره کنم و برگردانم

    مشکل من در خواندن از ابتدا تا انتهای TreeVeiw هست

  4. #4
    کاربر تازه وارد آواتار amir65gh
    تاریخ عضویت
    تیر 1388
    محل زندگی
    اصفهان
    پست
    66

    نقل قول: ذخیره TreeView در دیتابیس

    Recursive function برادر Recursive function
    با XML کار خودتو سخت نکن

  5. #5
    کاربر دائمی آواتار اَرژنگ
    تاریخ عضویت
    آبان 1384
    محل زندگی
    arjang8000@gmail.com
    پست
    2,736

    نقل قول: ذخیره TreeView در دیتابیس

    نقل قول نوشته شده توسط amir65gh مشاهده تاپیک
    Recursive function برادر Recursive function
    با XML کار خودتو سخت نکن
    چیزی سخت در مورد XML وجود ندارد، ولی از اکسس بهتر اس‌کیو‌ال اکسپرس هستش که هم مجانی و هم بیشتر پشتیبانی شده.

  6. #6
    کاربر دائمی آواتار water_lily_2012
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    اصفهان
    پست
    659

    نقل قول: ذخیره TreeView در دیتابیس

    لطفاً یکی این چند خط کد را بده
    و من را راحت کنه.

  7. #7
    مدیر بخش آواتار mmd2009
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    تهران
    پست
    2,393

    نقل قول: ذخیره TreeView در دیتابیس

    با سلام

    خودت یک بار دیگه سعی کن اگر نشد برنامتو بذار تا کدش رو برات بنویسم و بهت بدم

    موفق باشی

    کسی که به خود اطمینان دارد به تعریف دیگران احتیاج ندارد. «گوستاو لوبون»


  8. #8
    کاربر دائمی آواتار water_lily_2012
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    اصفهان
    پست
    659

    نقل قول: ذخیره TreeView در دیتابیس

    تازه قرار این برنامه را بنویسم، هنوز چیزی ننوشتم
    از اولش به این مشکل خوردم،

  9. #9
    کاربر دائمی آواتار MSN_Issue
    تاریخ عضویت
    آبان 1388
    محل زندگی
    مشهدالرضا
    پست
    586

    نقل قول: ذخیره TreeView در دیتابیس

    همون طور که یکی از دوستان گفت ، بهترین و ساده ترین راه (البته ساده برای بعضی ها !) استفاده از توابع بازگشتی است ...

  10. #10
    کاربر دائمی آواتار water_lily_2012
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    اصفهان
    پست
    659

    نقل قول: ذخیره TreeView در دیتابیس

    نقل قول نوشته شده توسط amir65gh مشاهده تاپیک
    Recursive function برادر Recursive function
    با XML کار خودتو سخت نکن

    از این تابع یه کم می دونم

  11. #11

    نقل قول: ذخیره TreeView در دیتابیس

    سلام دوستان
    اگه کسی ذخیره و بازیابی treeveiw رو توی هرفایلی ( text , access, xml , .. ) می دونه لطفاً یه چند خط کد یا یه نمونه بزاره
    ممنون از راهنمایی های مفیدتون

  12. #12
    کاربر دائمی آواتار ShayanFiroozi
    تاریخ عضویت
    شهریور 1397
    محل زندگی
    بندرعباس ، خلیج همیشه فارس
    سن
    38
    پست
    224

    نقل قول: ذخیره TreeView در دیتابیس

    سلام دوست عزیز ،

    شما مشخص نکردین نوع Traverse چجوری باشه ، چون در درخت های باینری چند نوع پیمایش داریم ،

    اما برای اینکه موضوع سخت نشه و کار به الگوریتم و ریاضی کشیده نشه اول شما باید TreeView رو پیمایش کنین :

    private void PrintRecursive(TreeNode treeNode)
    {

    MessageBox.Show(treeNode.Text);

    foreach (TreeNode tn in treeNode.Nodes)
    {
    PrintRecursive(tn);
    }
    }




    private void CallRecursive(TreeView treeView)
    {
    TreeNodeCollection nodes = treeView.Nodes;

    foreach (TreeNode n in nodes)
    {
    PrintRecursive(n);
    }
    }


    ضمنا دوستانی که نظرشون این هست که توابع بازگشتی پیچیده هستند حق با اوناست ولی در مواردی خاص مثل اینجا تقریبا چاره ای نیست ، مگر اینکه بخواین خودتونو الکی درگیر لیست ها و سایز TreeView و موارد اینجوری کنین که کدتون بیشتر پیچیده و زیاد میشه و صد البته با خطاها احتمالی بیشتر.


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

    ** توجه کنین اگر چند هزار نود دارین پیشنهاد میکنم تابع MessageBox رو جایگزین کنین ، چون هیچکس دوست نداره هزاران MessageBox سمج روی صفحش ظاهر بشه که نمیذارن حتی دکمه Stop Debug رو بزنین !!


    *** آپدیت :

    درخصوص نحوه کارش شما شی TreeView رو به عنوان آرگومان پاس میدین به تابع CallRecursive ، اون میاد تمام نود ها رو در یک کالکشن ذخیره میکنه ( البته نگران حافظه نباشین اینا در حافظه رم فقط Link میگیرن ، Copy نمیشن)
    بعد از اون یه حلقه foreach میاد تمام اون کالکشن نود ها رو پیمایش میکنه و با هر بار پیمایش تایع PrintRecursive رو فراخوانی میکنه.

    در تایع PrintRecursive هم یک حلقه دیگه تمام نود های زیر مجموعشو صدا میزنه و باز هم برای هر کدوم خود تابع رو صدا میزنه و دوباره روز از نو ، روزی از نو !
    انقدر این تابع خودشو رو صدا میرنن و نود ها به شکل Parent/Child به عنوان آرگومان پاس داده میشن تا تموم بشن !!
    آخرین ویرایش به وسیله ShayanFiroozi : دوشنبه 08 اردیبهشت 1399 در 09:37 صبح

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

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