PDA

View Full Version : جستجوی رشته فارسی در بانک



rahil_2007
دوشنبه 05 فروردین 1387, 20:30 عصر
با سلام
من می خواهم توسط یک texbox کلمه ی فارسی را در یافت کنم و در بین عناوین مقالاتم
به دنبال این کلمه بگردد که اگر چنین کلمه ای در بین آنها وجود داشت عنوان آن مقاله را نشان دهد
این کار برای متون انگلیسی انجام میشود اما در مورد متون فارسی کار نمی کند
لطفا من را راهنمایی کنید



با تشکر

my_blithe
دوشنبه 05 فروردین 1387, 21:59 عصر
من برای این کار از LIKE استفاده کردم وبرای فارسی هم جواب میده فقط سر حرف "ی" گیر میزنه

برای من فارسی و اینگلیسی نداشت

rahil_2007
سه شنبه 06 فروردین 1387, 01:27 صبح
من با sql server 2007 desktop edition کار میکنم
اما کدی که من نوشتم فقط برای کلمات انگلیسی کار میکنه و برای کلمات فارسی جواب نمی ده
لطفا منو راهنمایی کنید

e-shahshahani
سه شنبه 06 فروردین 1387, 12:45 عصر
عبارات فارسی چون یونیکد هستند باید قبل از گیومه حرف N قرار بدهی

where txt like N'%حسن%'

nazaninam
سه شنبه 06 فروردین 1387, 14:17 عصر
من برای این کار از LIKE استفاده کردم وبرای فارسی هم جواب میده فقط سر حرف "ی" گیر میزنه

برای من فارسی و اینگلیسی نداشت



ببینید برادر جان ، کلا مشکل در سه حرف ی ، ک ، و وجود داره مشکلم از اینجاست که این سه حرف را به دو طریق ( عربی و فارسی ) میشه نوشت
شما باید ابتدا تمامی اطلاعات موجود در بانکت رو تصحیح کنی
در ضمن در هنگام ورود اطلاعات نیز از این به بعد تمامی حروف را Replace کنی
این کار از چند طریق امکان پذیره :
1- اگر از StoredProcedure استفاده می کنی که در همان sp عمل replace کردن رو انجام بده
2- اگه نه که در خود کد نویسی سمت سرور از دستور Replace استفاده کن میتونی از یک تابع مثل تابع زیر استفاده کنی :




public static string RepairPersianChar(string Contents)
{
Contents = Contents.Replace("ی", "ی").Replace("ک", "ک").Replace("و", "و");
return Contents;

}

nazaninam
سه شنبه 06 فروردین 1387, 14:21 عصر
البته فکر کنم این Vbulletin خودش این کار رو انجام داد (همرو Replace کرد)
فایل کلاسی که قبلا نوشته بودم رو ضمیمه کردم
موفق باشید

my_blithe
سه شنبه 06 فروردین 1387, 14:28 عصر
من با sql server 2007 desktop edition کار میکنم
اما کدی که من نوشتم فقط برای کلمات انگلیسی کار میکنه و برای کلمات فارسی جواب نمی ده
لطفا منو راهنمایی کنید


شما لازم نیست کد خاصی استفاده کنی می تونی از ویزارد ها استفاده کنید برای این کار :
1- یک SQLdatas به صفحهت اضافه میکنی وبعد از طریق همون به دیتابیست وصل میشی و فیلد هایی که میخوای توی اونها جستجو انجام بشه انتخاب میکنی و بعد کلید WHERE رو میزنی ودر فیل اولی اسم همون فیلد رو انتخاب میکنی و در فیل دوم کلمه LIKE رو انتخاب میکنی و در فیلد سوم controler رو انتخاب میکنی و در سمت راست id تکست باکس سرچت رو انتخاب میکنی و سپس کار تمام می شود.
همین