PDA

View Full Version : سوال: حرف 'ی' تا قبل از ثبت فارسی هست ولی بعد از ثبت در جدول به عربی تغییر میکند!



دلتنگ اسمان
یک شنبه 21 مهر 1392, 13:12 عصر
سلام.
تا قبل از ثبت در جدول چک کردم حرف 'ی' وارد شده فارسی ('ی') هست حتی از متد زیر هم استفاده میکنم

public string ChengCode(string str)
{
return str.Replace((char)1603, (char)1705).Replace((char)1610, (char)1740).Replace((char)1609, (char)1740);
}
ولی بعد از ثبت در جدول بصورت عربی('ي') نوشته میشه تو جدول هم فرمت رو nvarchar گذاشتم.

Kubuntu
یک شنبه 21 مهر 1392, 13:47 عصر
سوالتون تکراریه!
دلیلش اینه که زبان ذخیره سازی sql فارسی نیست.

راهنمایی بیشتر:
زبان رو در collation تغییر بده

دلتنگ اسمان
یک شنبه 21 مهر 1392, 14:32 عصر
ممنون از توجهتون.
اما زبان همون جدول و همون فیلد رو چک کردم Persian_100_CI_AI بود. و مشکل فقط در همین جدوله. جداول دیگه هم دارم اما تو اونا درست ثبت میشه.

دلتنگ اسمان
یک شنبه 21 مهر 1392, 15:41 عصر
جوابش رو پیدا کردم. باید قبل از رشته حرف N رو قرار بدم.
حالا این سوال پیش میاد که چرا با وجود تنظیمات دیتابیس(منظورم زبان دیتابیس که Persian_100_CI_AI هستش) فارسی ذخیره نمیشه؟

Power.Csharp
یک شنبه 21 مهر 1392, 16:12 عصر
مطمعن بشید که خاصیت language ویندوز کامل وتوی اسکیوال نیز کامل نصب شده باشه در غیر این صورت فعال کردن اون گزینه زیاد کاربردی نداره .با تنظیمات صحیح نیازی به درج N ابتدای کوئریتون نیست

دلتنگ اسمان
یک شنبه 21 مهر 1392, 17:12 عصر
مطمعن بشید که خاصیت language ویندوز کامل وتوی اسکیوال نیز کامل نصب شده باشه در غیر این صورت فعال کردن اون گزینه زیاد کاربردی نداره .با تنظیمات صحیح نیازی به درج N ابتدای کوئریتون نیست
میشه راهنمایی کنید چطور میتونم این تنظیمات رو چک کنم؟ منظورم اینکه کجای اسکیوال رو چک کنم؟ ممنون

Power.Csharp
جمعه 26 مهر 1392, 00:08 صبح
شما اگه توی کنترل پنل تنظیمات زبان ویندوز خودتون رو صحیح نصب کرده باشید و توی اسکیوال گزینه های مربوط به فارسی رو انتخاب کرده باشید دیگه مشکلی ندارید.همچنین از نوع char واسه ثبت کلمات فارسی استفاده نکنید معمولا از nchar و یا nvarchar استفاده کنید تا national رو اضافه کنه
درباره کدوم تنظیمات راهنماییتون کنم؟؟شما اگه نوع متغیرهاتون رو nchar قرار بدید دیگه نیاز به درج N ندارید