آقای مدائنی عزیز وقتتون بخیر سال نوتون هم مبارک
تو کد جستجویی که نوشتین اگر نام و نام خانوادگی به صورت کامل نوشته بشه نتیجه ای حاصل نمیشه چجوری میشه این مشکل رو حل کرد.
مثال : اگر در جستجو "ن" رو وارد کنیم ایمان مدائنی رو برمیگردونه چون هم تو فامیلی "ن" هست هم تویه نام اما اگه "ایمان مدائنی" وارد کنیم نتیجه ای بر نمی گردونه ...
میشه تو خود SQL متدی نوشت که نام و نام خانوادگی رو تو یه فیلد جدا با هم تبدیل به Full Name کنه بعد روی اون فیلد کوئری بزنیم یا راه منطقی دیگه ای برای این کار هست؟
برای حل این مسئله باید چیکار کرد ...
ممنون میشم راهنمایی کنید
سلام
بله اون راه حل هم درسته
ولی در کل نباید مشکلی داشته باشه
تست میکنم
سپاس گذارم آقای مدائنی بابت پاسختون .
با احترام جهت صرفه جویی در وقت خدمتتون عرض میکنم که این ایراد منطقی از خود کُد Like هست
به این صورت که ما نوشتیم :
Select * From Table Where Name Like (@Parameter) or LastName Like (@Parameter)s
بسیار خب حالا شما رشته Iman Madaeny رو وارد این دستور کنید :
شرط میاد بررسی میکنه :
آیا Name داریم که شامل Iman Madaeny باشد : خیر
آیا LastName داریم که شامل Iman Madaeny باشد : خیر
چون ما کل رشته Iman Madaeny رو داریم ارسال می کنیم به عنوان پارامتر. و در نتیجه هیچ Name و یا LastName نداریم که درون خود اون فیلد به تنهایی Iman Madaeny وجود داشته باشه.
حتی اگه ما N+Space هم وارد کنیم شرط درست عمل نمیکنه چون هیچ نام یا نام خانوادگی ای نداریم که شامل کل رشته N+Space باشه.
ببخشید جسارت کردم .
فقط خواستم وقتتون کمتر گرفته بشه چون مشغله زیادی دارین و البته راه حل درستش رو بدونم .
باز هم سپاس گذارم از زمانی که رایگان در اختیار ما قرار میدید.
قبل از جستجو میتونید space ها رو replace کنید
استاد عزیز بنظرم مطلب رو درست بیان نکردم براتون.
منظور من space نیست و اصلا مشکل هم space نیست.
ببینید شما iman رو وارد میکنید شرط میره میبینه تو lastname نیست ولی تو name هست پس true برمیگردونه
حالا به محض اینکه ما حرف بعدی رو وارد کنیم حالا چه با فاصله چه چسبیده مثلا imanm
اینجا شرط میره بررسی میکنه میبینه تو Name رشته ای داریم که توش imanm باشه ، خیر iman داریم ولی imanm که نداریم پس false رو برمیگردونه .
حالا باید یا شرط رو جوری بنویسیم که دوتارو جمع کنه بعد مقایسه کنه با پارامتر یا یه جوری راهنماییم کنین لطفا ...
من تو برنامه نویسان هم مقالتون رو خوندم راجع به freetext و contains ازشون استفاده کردم ولی اون یه مشکل دیگه داره
انگار فقط به کلمه واکنش نشون میده و با زدن هر حرف با این که تو رویداد text changed هست تغییر نمیکنه مگر اینکه دقیقا نام و فامیل به درستی و کاملا وارد بشه و با زدن هر حرف فیلتر نمیشه
چنین چیزی نباید باشه من در اکثر پروژه هام استفاده میکنم
بررسی میکنم اگر اون ها هم این مشکل رو داشتند پیگیری میکنم
معمولا ما فیلدی میزاریم با عنوان FullName و روی اون جستجو میکنیم و اصلا نیازی به جدا کردن نام و نام خانوادگی در اکثر پروزهامون نییست
ممنونم از پاسختون جناب مدائنی ...
استاد شما درست میگین همچین چیزی نیست منتها به شرط اینکه روی یه فیلد جستجو بزنیم زمانی که دو فیلد رو با یه کوئری بررسی کنیم این مشکل پیش میاد.
بهرحال از توضیحاتی که دادین سپاس گذارم و فکر کنم با توجه به راهنمایی هاتون بهترین کار همون استفاده از fullname باشه
فقط به عنوان سوال آخر اون فیلد fullname رو میشه تو خود sql تعریف کرد یعنی خود sql قابلیت تولید تابع یا متد درون خودش داره یا اینکه باید خارج از sql تو خود سی شارپ انجامش بدم مثلا با خود data grid view ?
ببخشید خیلی سوال پرسیدم ...
بازم ممنونم ...
میشه برای تعریف کرد ولی ما ستوری میزاریم با عنوان full name اگر هم خواستید متد بزارید باید stored procedure بسازید