PDA

View Full Version : آموزش: جستجوی پیشرفته در Database



Mahmoud.Afrad
دوشنبه 08 خرداد 1391, 22:20 عصر
سلام

در این تاپیک نمونه کد جستجوی پیشرفته بر حسب اینکه چه فیلدهایی مدنظر باشد را قرار میدم.(ساخت کوئری sql سمت سی شارپ انجام می گیرد)

در دیتابیس جدول Tbl را با فیلدهای زیر را ایجاد کرده ایم:

91623


حال در برنامه ، دو تکست باکس به نامهای txtName و txtLname برای نام و نام خانوادگی و دو کمبوباکس برای محدوده سنی اضافه کنید. اعدادی را به عنوان سن به کمبوباکس ها اضافه کنید تا بتوان انتخاب محدوده سنی را انتخاب کرد(یک آیتم ابتدایی مانند "انتخاب کنید" به کمبوباکس ها اضافه کنید تا اگر کاربر نخواست انتخابی داشته باشد آنرا انتخا کند. کاربر می تواند سن را به این سه صورت تعیید کند age<=cmbAgeTo , age>=cmbAgeFrom , cmbAgeFrom<=age>=cmbAgeTo )

حال دکمه ای به نام btnSearch به فرم اضافه کنید. با توجه به اینکه پر کردن تکست باکس ها و انتخاب از کمبوباکس ها اختیاری است پس باید کوئری sql به صورت پویا ساخته شود که می توان این کار را با بررسی شرط هایی انجام داد. با if چک می کنیم هر فیلد و انتخابی صورت گرفته بود عبارت مناسب را به Command اضافه میکنیم.
پس در رویداد click دکمه جستجو به این صورت عمل کنید

91638

با توجه به اینکه در هر صورت در آخر کامند، کلمه and قرار می گیرد، می توان یک شرط همیشه درست مانند 1=1 را به انتهای آن اضافه کرد تا دستور کامل شود.
در انتها هم کوئری را اجرا کرده و نتیجه را در dgvResult که گریدویوی نتایج هست نمایش می دهیم.

پروژه ای با کدهای نمونه را می توانید از زیر دانلود کنید.


ممنون از نظرات شما

siedmohsen
چهارشنبه 01 آذر 1391, 22:49 عصر
من هم تو جستجوهام از این روش استفاده میکنم اما برای حذف and آخر از کد زیر استفاده می کنم

strSearch = strSearch.Substring(0, strSearch.Length - 4);

Mahmoud.Afrad
چهارشنبه 01 آذر 1391, 23:28 عصر
من هم تو جستجوهام از این روش استفاده میکنم اما برای حذف and آخر از کد زیر استفاده می کنم

strSearch = strSearch.Substring(0, strSearch.Length - 4);
همونطور که در پست اول گفتم میشه یک شرط همیشه درست به انتهای رشته اضافه کرد. اگر هم میخواهید روش خودتون رو انجام بدید قبلش مطمئن بشید که آخر رشته and وجود داره و بعد and آخر رو حذف کنید.