ذخیره TreeView در دیتابیس
سلام
من یه TreeView دارم که حدود چند هزار Node داره البته فکر نکنم تعداد فرقی بکنه
حالا می خوام به ترتیب این Node ها را وارد دیتابیس اکسس کنم.
برعکس این روش را می دونم ولی ریختن تو دیتابیس را بلد نیستم
یعنی بلد نیستم node را به ترتیب بخونم و وارد جدول کنم.
نقل قول: ذخیره TreeView در دیتابیس
اگر درختت شاخه ها و زیر شاخه هایی با عمق متفاوت داره توصیه میکنم از نوع xml استفاده کنی که نمیدونم اکسس ساپورتش میکنه یا نه وگرنه مجبوری اول یه فکری به حال روش ذخیره کردنش کنی بعد فکری به حال نحوه ذخیره سازیش کنی.
نقل قول: ذخیره TreeView در دیتابیس
بله هر شاخه تعداد خاص خودش را داره و تعداد خاص متفاوت هستند
ولی چرا اکسس پشتیبانی نمی کنه. من الان اطلاعات را دستی وارد جدول کرده ام ولی برنامه از جدول می خونه و مشکلی هم ندارم
حتی می تونم یه Node را هم با آیکن در جدول ذخیره کنم و برگردانم
مشکل من در خواندن از ابتدا تا انتهای TreeVeiw هست
نقل قول: ذخیره TreeView در دیتابیس
Recursive function برادر Recursive function
با XML کار خودتو سخت نکن
نقل قول: ذخیره TreeView در دیتابیس
نقل قول:
نوشته شده توسط
amir65gh
Recursive function برادر Recursive function
با XML کار خودتو سخت نکن
چیزی سخت در مورد XML وجود ندارد، ولی از اکسس بهتر اسکیوال اکسپرس هستش که هم مجانی و هم بیشتر پشتیبانی شده.
نقل قول: ذخیره TreeView در دیتابیس
لطفاً یکی این چند خط کد را بده
و من را راحت کنه.
نقل قول: ذخیره TreeView در دیتابیس
با سلام
خودت یک بار دیگه سعی کن اگر نشد برنامتو بذار تا کدش رو برات بنویسم و بهت بدم
موفق باشی
نقل قول: ذخیره TreeView در دیتابیس
تازه قرار این برنامه را بنویسم، هنوز چیزی ننوشتم
از اولش به این مشکل خوردم،
نقل قول: ذخیره TreeView در دیتابیس
همون طور که یکی از دوستان گفت ، بهترین و ساده ترین راه (البته ساده برای بعضی ها !) استفاده از توابع بازگشتی است ...
نقل قول: ذخیره TreeView در دیتابیس
نقل قول:
نوشته شده توسط
amir65gh
Recursive function برادر Recursive function
با XML کار خودتو سخت نکن
از این تابع یه کم می دونم
نقل قول: ذخیره TreeView در دیتابیس
سلام دوستان
اگه کسی ذخیره و بازیابی treeveiw رو توی هرفایلی ( text , access, xml , .. ) می دونه لطفاً یه چند خط کد یا یه نمونه بزاره
ممنون از راهنمایی های مفیدتون
نقل قول: ذخیره 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 به عنوان آرگومان پاس داده میشن تا تموم بشن !!