PDA

View Full Version : سوال: جستجو داخل محتویات richtextbox ذخیره شده در پایگاه داده



mehdi_vatan
سه شنبه 10 اسفند 1389, 16:10 عصر
با سلام
من یک کنترل richtextbox دارم که تمام قابلیت های فرمت بندی و اضافه کردن عکس را به کاربر می ده بعد من می خواهم این محتویات را داخل پایگاه داده ذخیره کنم.( به صورت باینری) حالا اگر بخواهم به کاربر امکان جستجو بر اساس یک کلمه یا متن را بدم آیا راهی وجود دارد که در این محتویات جستجو کرد یا باید در جدول فیلد دیگری را فقط برای ذخیره محتویات متنی richtextbox قرار بدم و جستجو را داخل آن انجام دهم. و اگه اضافه کردن عکس را در کنترل نداشته باشم و محتویات فقط شامل متن فرمت بندی شده باشد آیا میشود این متن فرمتبندی شده را طوری در پایگاه ذخیره کرد که هم در موقع بازیابی فرمت بندی خود را حفظ کند و هم بتوان در آن جستجو کرد.

علیرضا حسن زاده
سه شنبه 10 اسفند 1389, 18:42 عصر
امکان جستجو در هر دو حالتی که گفتین وجود داره
نکته ای که باید توجه داشته باشید اینکه در هر دو حالت(متن خالی و متن فرمت بندی شده +تصاویر و...) می تونید بدون توجه به محتویات به عنوان یک متن (nvarchar) در دیتا بیس ذخیره کنید و اگر اینکارو کردین می تونید جستجو هم داشته باشید فقط تنها تفاوتی که می کنه در حالت متنی مستقیما متن مورد نظر رو جستجو می کنید ولی در حالت فرمت بندی شده باید جستجوی شما در قالب و فرمت ذخیره شده باشه(برای اطلاعات بیشتر می تونید یک فایل Rtf که خروجی استاندارد richtextbox هست رو با notepad باز کنید و محتویات و قالبش رو یه نگاهی بندازین) برای راحتی در تبدیل متن مورد جستجو هم اگر اطلاعات کافی در مورد تبدیل اون ندارید می تونید متن مورد نظرتون رو در یک richtext قرار بدین و باکمی هرس کردن محتویات خصوصیت rtf عبارت مورد نظر رو بدیت بیارین و اون رو در پایگاه داده جستجو کنید(در این کار باید به رنگ، اندازه و فونت متن مورد جستجو هم اگر از عبارت مورد جستجو حذف نکرده باشین هم توجه کنید ولی اگر فقط متن بدون خصوصیاتش مورد نظرتون باشه فرقی نمیکنه)
توصیه: این قبیل کارها رو بنده به شخصه(به علت علاقه به ساختارو قابل انواع فایلها) انجام دادم ولی اگه شما در حال کار برای یک پروژه تجاری هستین که100% ممکنه مشتری از مشکلات برنامه شاکی بشه روش های ساده تر مثل ذخیره متن خالی در یک فیلد دیگه رو انجام بدین چون استفاده از این روش اگه تمام جزئیات رو پیاده سازی نکنید براتون مشکل ساز میشه و موجب دلسردی مشتری از برنامتون میشه (نمی دونم از کی شنیدم یا کجا خوندم که اگه یک تکنولوژی رو کامل بلد نیستی هرچقدر هم بروز و با کارایی بالا باشه در مورد بکار بردنش تامل و تفکر زیادی بکن)