ورود

View Full Version : فیلتر در ویژوال دات نت



asamelal
سه شنبه 09 مرداد 1403, 16:46 عصر
:متفکر:سلام عزیزان
من در ویژوال بدات نت پروژه ای نوشتم
برای فیلتر دیتا گرید از دستور زیر استفاده کردم
BindingSource1.Filter = (" name like '" & TextBox1.Text & "*'")



این میاد فلدهایی که با اولش با نوشته تکست باکس هستش فیلتر میکنه
میخواستم بدونم قسمت آخر کد ، متدی هستش که اگه کلمه کلیدی تو تکس باکس وسط نوشته هم باشه تو فیلتر بیاد؟؟
مثلا من تکس مسنویسم ali
تمام ردیفهایی که توش ali - alireza - alimorad و... باشه نشون میده میخوام golamali نشون بده
منظورم قسمت "*'" هستشممنون میشم راهنمایی کنین

asamelal
سه شنبه 09 مرداد 1403, 18:17 عصر
سلام عزیزان
کسی بلد نیست بگه بهم ؟؟؟
وحید تنها....
وحید غمگین....
وحید آغلادی گتی یاتدی....
:گریه::گریه::گریه::گریه:

mazoolagh
سه شنبه 09 مرداد 1403, 18:20 عصر
سلام و روز خوش

BindingSource1.Filter = $"[name] like '%{TextBox1.Text}%'"

asamelal
سه شنبه 09 مرداد 1403, 20:02 عصر
خیلی ماهی.....

asamelal
دوشنبه 15 مرداد 1403, 15:47 عصر
سلام عزیزان..
اول تشکر کنم از پاسخگوییتون
من رشتم برنامه نویسی نیست و یکسال هستش برای کار خودم که کاریابی و مهاجرت هستش یه برنامه با دات نت نوشتم که به نظر خودم هرچی که لازم دارم برام انجام میده...
مشکلی که داشتم این بود که هیچ کسی مشکلی که داشتم راهنمایی نمیکرد و مسلما بیشتر دستورات رو با صحیح و خطا کردن بدست آوردم که احتمال داره بعضی ها استاندارد نباشه ، ولی کارم رو اونجور که میخواستم انجام میده...
خدا رو شکر که اینجا سوالام رو پیدا میکنم و خیلی تو وقتم صرفه جویی میشه...
یه سوال برام پیش اومده که من یه table تو sql دارم که ستونهای شماره ردیف و نام و نام خانوادگی و ... داره
قبلا یه نام یا نام خانوادگی میدادم فیلتر میکرد اکثر دستورام BindingSource1.Filter = (" name like '" & TextBox1.Text & "*'") بود و جواب مبداد
الان یه دیتاگرید دام که فقط شماره ردیف توش دارم
میخوام تو دیتا گرید اولیم همه نام و نام خانوادگی های که ردیفاش تو دیتا دومی هست نشون بده
البته شماره ردیف تکراری هم دارم و برای کارم لازمه

توی عکس پیوست مشخصه تو دو تا دیتا گرید علامت 1 مشترکه و وقتی از اعداد 2 میزنم تمام ردیفهایی که تو یه فیلدش هست نشون بده
ممنونم میشم با سواد من بهم جواب بدین

mazoolagh
سه شنبه 16 مرداد 1403, 20:15 عصر
سلام و روز خوش

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

این که سعی کردین مشکل رو تا حد امکان دقیق توضیح بدین (دست کم از دید خودتون)،
هم قابل تقدیر هست، پس خوبه که از این سمت هم پاسخ مناسبی دریافت کنین.

پاسخ دقیق و مناسب نیازمند این هست که ساختار جدول ها و روابط بین اونها،
و همچنین datasource یا bindingsource گریدها مشخص باشه.
و این که روش جستجو و فیلتر کردن هم دقیق مشخص باشه : چه فیلدهایی، موقعیت جستجو (هرجا، اول،آخر،وسط) و ارتباط منطقی (and/or).

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

و اما وضعیت فعلی:

الان یه دیتاگرید دام که فقط شماره ردیف توش دارم
میخوام تو دیتا گرید اولیم همه نام و نام خانوادگی های که ردیفاش تو دیتا دومی هست نشون بده

آیا منظورتون این هست؟
در گرید اول فیلتر بر اساس دیتا انتخاب شده در گرید دوم (مثلا idzaban) انجام بشه.

در کدوم بخش مشکل دارین؟
فیلتر بر اساس id ؟
یا گرفتن id انتخاب شده؟

اگر id شما شماره هست و فقط در نوشتن عبارت فیلتر مشکل دارین این رو امتحان کنین:
dim SelectedLanguageCode as integer= ...
BindingSource1.Filter = $"[idzaban]={SelectedLanguageCode}"

asamelal
دوشنبه 29 مرداد 1403, 19:48 عصر
ممنون از توجهت
اگه بخوام درست توضیح بدم یه تیبل دارم توش یه اطلاعاتی از بان آموز که یه شماره ردیف یکتا برای هر متقاضی دارم....
یه جای دیگه اطلاعات کلاس فعال دارم که این تیبل هم یه کد درس یکتا داره...
حالا یه تیبل سوم دارم که ستون اولش شماره کلاس توش میاد و ستون دومش شاگردای عضو اون کلاس....
مثلا کلاس A شاگردای شماره 1 و 2و 3 و4 توش عضون و کلاس B شاگردای 1و5و6و7 توش عضو هستن...
توجه بشه شاگرد 1 تو دوتا کلاس هستش...
میخوام وقتی شماره کلاس رو یه تکست باکس مینویسم یه دیتا گرید باشه که شماره شاگردا توش نمایش میده... تا اینجا مشکلی ندارم و با یه فیلتر ساده انجامش میدم...
میخوام تو ایت دیتا گرید نام و نام خانوادگی شاگرد رو جلوی شمارش بنویسه... اینو مشکل دارم.

ROSTAM2
دوشنبه 29 مرداد 1403, 21:30 عصر
سلام ب همه
تو این مورد برای دانش آموز یا دانشجویان، دیتابیس می تونه همچین ساختاری داشته باشه

155981

ابتدا ریکوردهای جدول Terms در یک دیتاگرید مثلا نمایش داده می شن
ایتدا آی.دی دانش آموز یا دانشجو ها طبق آی.دی Term از جدول Registration فیلتر و سپس اطلاعات دانش آموز یا جو، دز جدول Students طبق آی.دی موجود در جدول Registration فیلتر و در دیتا گرید دیگر نمایش داده می شن