PDA

View Full Version : دستور select من با انگلیسی هیچ مشکلی نداره اما فارسیها رو select نمیکنه ؟



mohammady2
شنبه 19 مرداد 1387, 06:53 صبح
سلام
چرا در دستور select مقادیر فارسی پایگاه درست جواب داده نمیشه؟

mohammed
شنبه 19 مرداد 1387, 07:33 صبح
قبل از عبارت فارسی از N استفاده کنید.



SELECT * FROM
MyTable WHERE
field = N'سلام - عید 15 شعبان مبارک'

mohammady2
شنبه 19 مرداد 1387, 10:18 صبح
من فیلد ها رو NVARCHAR تعریف کردم فکر نمیکنم نیازی به N باشه ولی با این وجود امتحان کردم با N هم جواب نداد


" select * from tbl_login where user_name ='" + textBox2.Text + "' and pass = '" + textBox1.Text + "'";

afsharm
شنبه 19 مرداد 1387, 10:38 صبح
شاید:
1- لازمه از like یا علایم % استفاده کنید.
2- شاید در اطلاعات ذخیره شده از حروف عربی مثل ي یا ك به جای معادل فارسی‌شان یعنی ی و ک استفاده شده.

سعی کنید با استفاده از ابزارهایی مثل SQL Profiler اصل query که به دیتابیس فرستاده می‌شه رو ارزیابی کنید.
تگه مشکل حل نشد نمونه اطلاعاتی رو که در جدول مورد نظرتون هم هست رو در اینجا بزارین.

h.jaza
شنبه 19 مرداد 1387, 10:43 صبح
سلام
شما احتمالا در هنگام ساخت Database، زبان رو Arabic_Bin2 انتخاب نکردین
اگر این کارو انجام بدین، دیگه نباید مشکلی وجود داشته باشه
البته اگر آپدیت باشید، متوجه شدین که جدیدا فارسی هم ساپورت می شه در SQL.
یعنی کولیشین Farsi به اون اضافه شده.

رضا جاسبی
شنبه 19 مرداد 1387, 22:30 عصر
من فیلد ها رو NVARCHAR تعریف کردم فکر نمیکنم نیازی به N باشه ولی با این وجود امتحان کردم با N هم جواب نداد


" select * from tbl_login where user_name ='" + textBox2.Text + "' and pass = '" + textBox1.Text + "'";

دوست عزیز در این کد که نوشتید که N دیده نمی شود :



" select * from tbl_login where user_name = N'" + textBox2.Text + "' and pass = N'" + textBox1.Text + "'";


با این دستور و NVarchar باید مشکل حل شده باشد. محض اطمینان مقادیر تکست باکسها رو شما خودت دستی در این دستور اضافه کن و در محیط SQL اجرا کن. هرچند که تقریبا مطمئنم که مشکلی نیست.