View Full Version : ذخیره نشدن متن فارسی در بانک اطلاعاتی
navidlog
یک شنبه 03 آبان 1388, 12:03 عصر
سلام به همه
من یه سایت طراحی کردم که از بانک اطلاعاتی sql server 2005 استفاده می کنه
از طریق یه صفحه اطلاعات رو به بانک اطلاعاتی وارد می کنم تا تو صفحات دیگه سایت نشونشون بدم. ولی کاراکترهای فارسی به صورت ؟ نشون داده می شن. مشکل چیه؟
encoding بانک اطلاعاتی arabic_ci_ai تنظیم شده
armangara
یک شنبه 03 آبان 1388, 12:16 عصر
سلام به همه
من یه سایت طراحی کردم که از بانک اطلاعاتی sql server 2005 استفاده می کنه
از طریق یه صفحه اطلاعات رو به بانک اطلاعاتی وارد می کنم تا تو صفحات دیگه سایت نشونشون بدم. ولی کاراکترهای فارسی به صورت ؟ نشون داده می شن. مشکل چیه؟
encoding بانک اطلاعاتی arabic_ci_ai تنظیم شده
اگه فيلدها رو از نوع nvarchar ya ntext انتخاب كنيد فكر كنم مشكلتون حل بشه
imanasp
یک شنبه 03 آبان 1388, 12:45 عصر
در sql server 2005 مسیر زیر را برای تعیین زبان دیتابیس دنبال کنید:
بعد از کلیک راست روی دیتابیس مذکور
properties-->option-->collaction
سپس از لیست کشویی مقدار Arabic_CS_AS_KS_WS را انتخاب کنید تا مشکلاتان برطرف شود
m110_110
یک شنبه 03 آبان 1388, 13:06 عصر
سلام
اگر صفحاتتون codepage شون windows-1256 باشه مي توني از varchar استفاده کني ولي در صورتي که از utf8 استفاده مي کني بايد نوع فيلدهات رو nvarchar تعريف کني
saied_genius
یک شنبه 03 آبان 1388, 16:03 عصر
زمان ثبت اطلاعات در query insert يک حرف N بزرگ قبل از فيلد قرار دهيد.
مثال:
insert into testTable (field1) values (N'value1')
SAMARE
یک شنبه 02 اسفند 1388, 11:47 صبح
سلام
اگر صفحاتتون codepage شون windows-1256 باشه مي توني از varchar استفاده کني ولي در صورتي که از utf8 استفاده مي کني بايد نوع فيلدهات رو nvarchar تعريف کني
دوست عزيز اطلاعات مربوط به codepageصفحات رو از كجا بايد بدست بيارم؟؟؟
SAMARE
یک شنبه 02 اسفند 1388, 11:55 صبح
در sql server 2005 مسیر زیر را برای تعیین زبان دیتابیس دنبال کنید:
بعد از کلیک راست روی دیتابیس مذکور
properties-->option-->collaction
سپس از لیست کشویی مقدار Arabic_CS_AS_KS_WS را انتخاب کنید تا مشکلاتان برطرف شود
در sql server 2008 چيكار بايد كرد؟؟؟
saied_genius
یک شنبه 02 اسفند 1388, 12:24 عصر
در sql server 2008 چيكار بايد كرد؟؟؟
فرقي نمي کند.
توجه: مراحل ذکر شده فوق مربوط به Sql Server Management studio مي باشد ، که براي sql server 2008 بايد sql server management studio 2008 را نصب کنيد.
موفق باشيد.
zari_attari
دوشنبه 01 شهریور 1389, 13:53 عصر
منم به این مشکل برخوردم اما حالا اعداد فارسی رو ؟ نشون میده.
درضمن Collation رو Arabic_CS_AS_KS_WS گذاشتم
viper2009
شنبه 06 شهریور 1389, 03:10 صبح
سلام به همه
من یه سایت طراحی کردم که از بانک اطلاعاتی sql server 2005 استفاده می کنه
از طریق یه صفحه اطلاعات رو به بانک اطلاعاتی وارد می کنم تا تو صفحات دیگه سایت نشونشون بدم. ولی کاراکترهای فارسی به صورت ؟ نشون داده می شن. مشکل چیه؟
encoding بانک اطلاعاتی arabic_ci_ai تنظیم شده
سلام
با استفاده از درج بصورت پارامتر مشکلت حل میشه 100 درصد تضمینی
این شکلی
OleDbConnection con = new OleDbConnection(Str());
OleDbCommand Com = new OleDbCommand();
Com.Connection = con;
Com.CommandText = "insert into tblReg VALUES (@nam,@last)";
Com.Parameters.AddWithValue("@nam", txtNam.Text);
Com.Parameters.AddWithValue("@last", txtLast.Text);
con.Open();
Com.ExecuteNonQuery();
con.Close();
moslem.hady
دوشنبه 05 مهر 1389, 08:19 صبح
نوع nvarchar و ntext براي فارسي. همون طور كه دوستان گفتن ميتوني يه N هم قبل ذخيره بذاري.
eynali
جمعه 26 آبان 1391, 11:03 صبح
دوستان عزیز, برای این کار از روش ساده ی زیر میتونین استفاده کنین.فقط کافیه دستور SQL رو متناسب با دستور مورد نظرتون بنویسید.
95004
mehdi.safavie
دوشنبه 10 تیر 1392, 08:33 صبح
دوستان من چقدر شلوغش میکنید یه مساله ساده رو چیزی نشده که
شما فایل txt رو زمانی که میخوای ذخیره کنی * کافیه در قسمت Encoding سمت چپ دکمه Save رو روی حالت UTF-8 قرار بدی . و در هنگام ساخت فیلد ها در SQL از نوع Nvarchar باشه و زبان رو هم روی Persian_CI_AI بزار و Compatibility رو هم روی 100 بزار ** . دیگه مشکلی نداری .
*(یه فایل txt بساز ، بعد گزینه Save As رو انتخاب کن و این کاری که گفتم رو انجام بده ، بعد متنی که قراره توی فایل txt باشه رو توش کپی کن و ادامه کار رو انجام بده )
**(کلا هر DataBase ای که میسازی این تغییرات رو در قسمت زبان باید بدی . مگر این که زمان نصب SQL این تنظیمات رو انجام داده باشی که جناب رضا خارائی از مدیران بخش VB.NET در وب سایت خودشون مقالاتی برای آموزش گذاشتن که آموزش SQL هم شامل اونهاست میتونی بری و دانلود کنی که این تنظیمات رو ایشون قشنگ توضیح دادن :
http://kharaee.com)
موفق باشین
hamedd82
دوشنبه 10 تیر 1392, 09:14 صبح
سلام
دوست عزیز نوع فیلدتو در اس کیو ال nvarchar انتخاب کن
بعد در هنگام دریافت اطلاعات از textbox مانند کد زیر از کلمه N بزرگ استفاده کن
string connectionString = "Data Source = .//SQLEXPRESS ; Initial Catalog= database name ;Integrated Security= SSPI;";
SqlConnection conObj = new SqlConnection(connectionString);
string commandText = "Insert Into table name (lname,fname) values(N'"+TextBox3.Text+"',N'"+TextBox4.Text+"'+"')";
SqlCommand cmdObj = new SqlCommand(commandText,conObj);
conObj.Open();
cmdObj.ExecuteNonQuery();
conObj.Close();
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.