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

نام تاپیک: وجود حالت های زیاد در جستجو

  1. #1
    کاربر دائمی
    تاریخ عضویت
    مهر 1388
    محل زندگی
    کرمانشاه
    سن
    37
    پست
    735

    وجود حالت های زیاد در جستجو

    با سلام به دوستان عزیز

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

    نگاهی به فرم زیر بندازید
    p1.PNG

    در این فرم 6 چک باکس وجود داره که میشه انتخابشون کرد و بر اساس اون جستجو کرد
    خوب با وجود 6 حالت که هرکدوم یا انتخاب شده یا خیر در کل 2 به توان 6 حالت یعنی 64 حالت پیش میاد
    (البته توی این مثال یه کم کمتر چون بعضی حالت ها رو میشه نادیده گرفت)
    حالا اگه یک فیلد دیگه هم اضافه بشه تعداد حالت ها میشه 128 تا
    آیا راهی هست که بشه این جستجو رو از حالت نمایی درآورد؟

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

    نقل قول: وجود حالت های زیاد در جستجو

    با سلام.

    از چه تکنولوژی ای برای برقراری با بانک اطلاعاتی استفاده می کنید ؟

    موفق باشید

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


  3. #3
    کاربر دائمی
    تاریخ عضویت
    مهر 1388
    محل زندگی
    کرمانشاه
    سن
    37
    پست
    735

    نقل قول: وجود حالت های زیاد در جستجو

    از Entity Framework استفاده میکنم

  4. #4

    نقل قول: وجود حالت های زیاد در جستجو

    نقل قول نوشته شده توسط rezaei_y مشاهده تاپیک
    با سلام به دوستان عزیز

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

    نگاهی به فرم زیر بندازید
    p1.PNG

    در این فرم 6 چک باکس وجود داره که میشه انتخابشون کرد و بر اساس اون جستجو کرد
    خوب با وجود 6 حالت که هرکدوم یا انتخاب شده یا خیر در کل 2 به توان 6 حالت یعنی 64 حالت پیش میاد
    (البته توی این مثال یه کم کمتر چون بعضی حالت ها رو میشه نادیده گرفت)
    حالا اگه یک فیلد دیگه هم اضافه بشه تعداد حالت ها میشه 128 تا
    آیا راهی هست که بشه این جستجو رو از حالت نمایی درآورد؟
    منظورتون از 64 یا 128 حالت چیه؟
    به هرحال فقط یکی از این حالتها توی جستجو ایجاد میشه شاید من متوجه منظورتون نشدم
    اما به این لینک نگاه کنید شاید بدردتون بخوره
    https://barnamenevis.org/showthread.p...پیشرفته

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

    نقل قول: وجود حالت های زیاد در جستجو

    خب شما به دو روش میتونید اینکارو بکنید. ابتدا با استفاده از Dynamic Linq Query هست که در همون لینک مثال زده شده که شما بر اساس نیازتون باید کوئری رو خودتون ایجاد بکنید و راه دوم استفاده از Predicate Builder هستش که مثلا بدین شکل باید استفاده کنید :


    var predicateUsers = PredicateBuilder.True<Users>();
    if(chkCity.checked)
    {
    predicateUsers=predicateUsers.And(x => x.city.Contains("myCity"));
    }
    if(chkCollege.checked)
    {
    predicateUsers=predicateUsers.And(x => x.College.Contains("myCollege"));
    }
    // and ....

    var list=Users.Where(predicateUsers);


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

    موفق باشید

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


  6. #6
    کاربر دائمی
    تاریخ عضویت
    مهر 1388
    محل زندگی
    کرمانشاه
    سن
    37
    پست
    735

    نقل قول: وجود حالت های زیاد در جستجو

    ممنون از دوستان

    منظورتون از 64 یا 128 حالت چیه؟
    ببینید من چند تا حالت رو میگم:
    1) لیست اساتید هیئت علمی
    2) لیست اساتید با مرتبه علمی استادیار
    3)لیست اساتید دارای تخصص برنامه نویسی
    4)لیست اساتید هیئت علمی که مرتبه علمی آنها دانشیار است
    5)لیست اساتید هیئت علمی که دارای تخصص برنامه نویسی هستند
    6)لیست اساتید که دارای مرتبه علمی مربی و تخصص برنامه نویسی می باشند
    7)لیست اساتید دارای تخصص برنامه نویسی و مرتبه علمی استادیار و نوع استخدام هیئت علمی هستند
    8)لیست کلیه اساتید

    خوب همانطور که دیدید برای سه تا فیلد ما 8 حالت داشتیم که اگه 4 فیلد بشه میشه 16 حالت و به صورت نمایی....


    خب شما به دو روش میتونید اینکارو بکنید. ابتدا با استفاده از Dynamic Linq Query هست که در همون لینک مثال زده شده که شما بر اساس نیازتون باید کوئری رو خودتون ایجاد بکنید و راه دوم استفاده از Predicate Builder هستش
    قبل از اینکه من کوئری رو ایجاد کنم باید بگم که از کدام حالت میخوام استفاده کنم 000001 یا 000010 و یا ...
    من با کوئری مشکل ندارم
    الان هم برنامه ام داره جواب میده
    ولی واقعا از if else نوشتن خسته شدم
    خواستم ببینم کسی ایده دیگه ای به ذهنش نمیرسه؟

    بازم ازتون ممنونم

  7. #7

    نقل قول: وجود حالت های زیاد در جستجو

    نیاز نیست برای همه حالات if else بنویسید ، فقط کافیه به ازای هر مسخصه که در جستجو دخالت داره یک if بنویسید، در اینصورت فقط در صورتی در جستجو دخالت داده میشه که اون ورودی توسط کاربر انتخاب و وارد شده باشه یعنی برای 6 ورودی فقط 6 عدد if نیاز دارید نه 128 تا.

  8. #8
    کاربر دائمی
    تاریخ عضویت
    مهر 1388
    محل زندگی
    کرمانشاه
    سن
    37
    پست
    735

    نقل قول: وجود حالت های زیاد در جستجو

    ممنون دوست عزیز متوجه نشدم

    میشه برای موارد زیر که به ازای سه مشخصه در نظر گرفته شده با 3 if بنویسید

    1) لیست اساتید هیئت علمی
    2) لیست اساتید با مرتبه علمی استادیار
    3)لیست اساتید دارای تخصص برنامه نویسی
    4)لیست اساتید هیئت علمی که مرتبه علمی آنها دانشیار است
    5)لیست اساتید هیئت علمی که دارای تخصص برنامه نویسی هستند
    6)لیست اساتید که دارای مرتبه علمی مربی و تخصص برنامه نویسی می باشند
    7)لیست اساتید دارای تخصص برنامه نویسی و مرتبه علمی استادیار و نوع استخدام هیئت علمی هستند
    8)لیست کلیه اساتید

    منظورم اینه که کاربر برای سه مشخصه میتونه 8 حالت انتخاب داشته باشه پس نیاز به 8 if پیدا میکنه

  9. #9

    نقل قول: وجود حالت های زیاد در جستجو

    بزارید اینطوری بگم : اگر بخواهید همین مسئله رو در sql بنویسید چه کار میکنید؟ آیا 128 حالت رو ایجاد میکنید؟ قطعا نه. در صورتی که ورودی توسط کاربر وارد شده باشه رشته SqlCommand رو اصلاح میکنید وگرنه به رشته کامند دست نمیزنید. در مثال mmd2009 هم همینطور در صورتی که ورودی وارد شده باشه اون شرط در کوئری دخالت داده میشه.

    این نمونه رو نگاه بنداز.
    آخرین ویرایش به وسیله Mahmoud.Afrad : شنبه 04 آبان 1392 در 14:32 عصر

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

    نقل قول: وجود حالت های زیاد در جستجو

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

    بذارید مسئله رو روشن تر بیان کنم. خب شما در بالا 8 مدل جستجو رو گفتید که در 3 فیلد جستو ها صورت میگیرن :

    · نوع استخدام

    · مرتبه علمی

    · تخصص

    که من همه فیلد ها رو براتون در نظر می گیر تا بهتر راهنمایی بشید.

    · نوع استخدام

    · مرتبه علمی

    · تخصص

    · دانشکده

    · شهرستان

    · استان

    · استان محل خدمت

    خب فرم شما هم اماده هست و 7 حالت رو داره و شرط با باید با استفاده از Predicate Builder باید بدین صورت باشه


    var predicateOstad = PredicateBuilder.True<Ostad>();

    if(chkNoeEstekhdam.checked)

    {

    predicateOstad = predicateOstad.And(d=>d.noeEstekhdam==”داده ای که کاربر انتخاب کرده”);

    }

    if(chkMartabeEmli.checked)

    {

    predicateOstad = predicateOstad.And(d=>d. MartabeEmli==”داده ای که کاربر انتخاب کرده”);

    }



    if(chkTakhasos.checked)

    {

    predicateOstad = predicateOstad.And(d=>d.Takhasos==”داده ای که کاربر انتخاب کرده”);

    }

    if(chkDaneshkade.checked)

    {

    predicateOstad = predicateOstad.And(d=>d.Daneshkade==”داده ای که کاربر انتخاب کرده”);

    }

    if(chkShahrestan.checked)

    {

    predicateOstad = predicateOstad.And(d=>d.Shahrestan==”داده ای که کاربر انتخاب کرده”);

    }

    if(chkOstan.checked)

    {

    predicateOstad = predicateOstad.And(d=>d.Ostan==”داده ای که کاربر انتخاب کرده”);

    }

    if(chkOstanMahaleKhedmat.checked)

    {

    predicateOstad = predicateOstad.And(d=>d.OstanMahaleKhedmat==”د ده ای که کاربر انتخاب کرده”);

    }




    خب همونطور که می بینید فقط 7 شرط داریم حالا اینا به نظرتون انتخاب یا عدم انتخاب هرکدومشون چند حالت داره ؟



    مثلا کاربر 3 چک باکس زیر رو تیم میزنه :

    chkNoeEstekhdam و chkMartabeEmli و chkOstan

    به عبارتی مثلا با این داده ها :

    نوع استخدادم : هیئت علمی

    مرتبه علمی : استادیار

    استان : خوزستان



    حالا Predicate Builder شما 3 شرط رو شامل شده و دستور Where ما بدین صورت میشه :

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

    خب همونطور که می بینید فقط 7 شرط بیشتر نداریم برای 7 فیلدی که شما براشون چک باکس ایجاد کردید.

    امیدوارم منظورم رو رسونده باشم.

    موفق باشید

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


  11. #11
    کاربر دائمی
    تاریخ عضویت
    مهر 1388
    محل زندگی
    کرمانشاه
    سن
    37
    پست
    735

    نقل قول: وجود حالت های زیاد در جستجو

    یک دنیا ممنون

    حق با شماست با 6 تا if پیاده سازی میشه

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

  1. پاسخ: 12
    آخرین پست: جمعه 07 مرداد 1390, 01:26 صبح
  2. وجود خطا های زیاد در مد ریلیز
    نوشته شده توسط R_Rajaee_Rad در بخش VB.NET
    پاسخ: 4
    آخرین پست: پنج شنبه 19 خرداد 1390, 10:16 صبح
  3. جستجو در بین داده های زیاد
    نوشته شده توسط m_karimi در بخش PHP
    پاسخ: 2
    آخرین پست: شنبه 14 اسفند 1389, 23:00 عصر
  4. جستجو در بین داده های زیاد
    نوشته شده توسط m_karimi در بخش JavaScript و Framework های مبتنی بر آن
    پاسخ: 0
    آخرین پست: پنج شنبه 12 اسفند 1389, 23:09 عصر
  5. سوال: مشکل در وجود کاراکتر های عربی در بانک به منظور جستجو
    نوشته شده توسط sadra_r2235 در بخش SQL Server
    پاسخ: 3
    آخرین پست: پنج شنبه 11 شهریور 1389, 08:06 صبح

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

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