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

نام تاپیک: مشکل جستجوی حرف "ی"

  1. #1

    Question مشکل جستجوی حرف "ی"

    سلام به دوستان
    مشکل جستجوی حرف "ی"
    من یه application با asp.net و C#‎ نوشتم که از SQL SERVER 2005 به عنوان دیتابیس استفاده می کنه ، فیلدهای دیتابیس رو nvarchar انتخاب کردم . در یکی از قسمت های سایت کاربر میتونه عبارتی رو جستجو کنه . عمل جستجو در دیتابیس و بر اساس یکی از فیلدها به نام Abstract_body صورت میگیره ، حالا مشکل من اینه که اگه در عبارت مورد جستجو حرف "ی" وجود داشته باشه ، با این که متن اصلی حرف "ی" رو داره ، نتیجه ای پیدا نمیشه . کدی که جستجو رو انجام میده :
    Select * from MyTable where Abstract_body like ' %"+TextBox_search.Text.Trim()+"% ' "
    Collation دیتابیس Arabic هست .
    پیشتر از کمک شما ممنونم.

  2. #2

    نقل قول: مشکل جستجوی حرف "ی"

    دوست عزیز این مشکلی که شما داری از این ناشی میشه که ما دو نوع "ی" داریم. یکی "ی" فارسی و دیگری "ي" عربی . اگه دقت کنی "ي" عربی دو تا نقطه زیرش داره که با Shift + x درج میشه. این دو تا ی کد اسکیشون با هم فرق میکنه به خاطر همین وقتی کلمه ای که در پایگاه داده شما ذخیره شده یکی رو داشته باشه و در application شما کلمه ای که مورد جستجو قرار میدید مدل دیگر ی رو داشته باشه نمی تونه کلمه مورد نظر شما رو تو بانک پیدا کنه. این مشکل رو حتی برنامه های بزرگ هم دارن و من زیاد باهاش برخورد کردم
    راه حل سهل الوصولش اینه که ببینی در حال حاضر سیستمی که application روش اجرا میشه چه نوع ی رو استفاده میکنه تمام ی های data base رو با توابع تبدیل کد اسکی به اون نوع ی تبدیل کنی
    ولی این راه حل اشتباهه و اصلا نمیشه رو همه سیستم ها مدیریت داشت
    راه حل اصولی اینه که ابتدا با توابع جایگزینی حرف تمام ی های data base رو یه دست کنی و بعد تو application کدی بنویسی که هنگام درج داده ها در بانک همیشه عملیات تبدیل ی صورت بگیره و کلماتی که تو بانک ذخیره میشه با یک نوع ی درج بشن
    جداول کد اسکی حروف به وفور تو اینترنت موجود و توابع جایگزینی و تبدیل حروف رو هم می تونی تو همین بخش با جستجو پیدا کنی

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

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