PDA

View Full Version : سوال: چطور تو sql فارسي ذخيره كنيم



mehran788
شنبه 27 خرداد 1391, 11:10 صبح
با سلام و خسته نباشيد
من يك پرو‍ه دارم كه توي اون از sql براي بانك اطلاعاتي استفاده كردم ولي اگه داده اي رو به فارسي توش ذخيره كنم فقط علامت سوال جاش مي اندازد.آيا راهي براي درست كردنش هست؟
ممنون

amir-aa
شنبه 27 خرداد 1391, 11:13 صبح
عزیزم تا اونجا که من میدونم باید موقع نصب روی arabic تنظیمش کنی
حالا ببین بچه های دیگه چی میگن ولی احتمالا راهش همینه

Saeed_m_Farid
شنبه 27 خرداد 1391, 11:33 صبح
این سوال هیچ ربطی به #C نداره البته نه که با #C نشه: اگه راه #C ی رو بخوای، باید برای هر عبارت فارسی، کد یونیکد هر کاراکتر از کلمه موردنظر رو تو جدول ذخیره کنی(با یه جداکننده مناسب بین کاراکترها) و موقع فراخوانی هم اون کدها رو تبدیل کنی به کاراکتر و کلمه رو دربیاری!!!

ولی تو SQL برای اینکار اول string ها تو دستور INSERT INTO باید (http://support.microsoft.com/kb/239530) یه پیشوند N بذاری :

INSERT INTO YourTable
VALUES(N'عبارت فارسی', N'هر کلمه یونیکدی', N'Test', 20.05, 1);


* سمت سرور (http://msdn.microsoft.com/en-us/library/ms191313%28SQL.105%29.aspx)

mehran788
شنبه 27 خرداد 1391, 17:34 عصر
این سوال هیچ ربطی به #C نداره البته نه که با #C نشه: اگه راه #C ی رو بخوای، باید برای هر عبارت فارسی، کد یونیکد هر کاراکتر از کلمه موردنظر رو تو جدول ذخیره کنی(با یه جداکننده مناسب بین کاراکترها) و موقع فراخوانی هم اون کدها رو تبدیل کنی به کاراکتر و کلمه رو دربیاری!!!

ولی تو SQL برای اینکار اول string ها تو دستور INSERT INTO باید (http://support.microsoft.com/kb/239530) یه پیشوند N بذاری :

INSERT INTO YourTable
VALUES(N'عبارت فارسی', N'هر کلمه یونیکدی', N'Test', 20.05, 1);


* سمت سرور (http://msdn.microsoft.com/en-us/library/ms191313%28SQL.105%29.aspx)


سلام.من طبق گفته شما نوشتم ولي باز هم كار نكرد يك نگاه به كد من بندازين ببينين درسته يا نه؟

SqlCommand com = new SqlCommand("insert into tblmovakel(customercode,name,family,fathername,add ress,phonenumber) values ('" + mv.code + "',N'" + mv.name + "',N'" + mv.family + "',N'" + mv.father + "',N'" + mv.address + "','" + mv.phone + "')", con);

mehran788
شنبه 27 خرداد 1391, 17:35 عصر
این سوال هیچ ربطی به #C نداره البته نه که با #C نشه: اگه راه #C ی رو بخوای، باید برای هر عبارت فارسی، کد یونیکد هر کاراکتر از کلمه موردنظر رو تو جدول ذخیره کنی(با یه جداکننده مناسب بین کاراکترها) و موقع فراخوانی هم اون کدها رو تبدیل کنی به کاراکتر و کلمه رو دربیاری!!!

ولی تو SQL برای اینکار اول string ها تو دستور INSERT INTO باید (http://support.microsoft.com/kb/239530) یه پیشوند N بذاری :

INSERT INTO YourTable
VALUES(N'عبارت فارسی', N'هر کلمه یونیکدی', N'Test', 20.05, 1);


* سمت سرور (http://msdn.microsoft.com/en-us/library/ms191313%28SQL.105%29.aspx)


سلام.من طبق گفته شما نوشتم ولي باز هم كار نكرد يك نگاه به كد من بندازين ببينين درسته يا نه؟

SqlCommand com = new SqlCommand("insert into tblmovakel(customercode,name,family,fathername,add ress,phonenumber) values ('" + mv.code + "',N'" + mv.name + "',N'" + mv.family + "',N'" + mv.father + "',N'" + mv.address + "','" + mv.phone + "')", con);

Saeed_m_Farid
شنبه 27 خرداد 1391, 18:32 عصر
لطفاً یکم خوش خط تر کد بنویسین! string head = "INSERT INTO tblmovakel(customercode, name, family, fathername, address, phonenumber)";
SqlCommand com =
new SqlCommand(
String.Format("{0} VALUES ({1}, N'{2}', N'{3}', N'{4}', N'{5}', {6})"
, head
, mv.code
, mv.name
, mv.family
, mv.father
, mv.address
, mv.phone),
con);


عزیز دل من، اینا که سوالات مربوط به #C نیست که! کار نکرد یعنی چی؟ یعنی با کدی که نوشتین، داده ها بصورت یونیکد تو sql ذخیره نمیشن؟ (علامت ؟) اگه اینطوریه که به احتمال قریب به یقین شما مشکل کانفیگ دارین، لینک پایین رو با دقت دنبال کنید و اگه بازم مشکل حل نشد تو تالار SQL Server (http://barnamenevis.org/forumdisplay.php?21-SQL-Server) سوالتون رو مطرح بفرمایید(اینجا (http://barnamenevis.org/showthread.php?217032-%D9%85%D8%B4%DA%A9%D9%84-%D8%B2%D8%A8%D8%A7%D9%86-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%AF%D8%B1-SQL-SERVER) مشابهش هست):
Arabic Language Support in SQL Server (http://msdn.microsoft.com/en-us/library/cc295829%28v=sql.90%29.aspx)

ahmadreza517
شنبه 27 خرداد 1391, 18:34 عصر
به نام تنها برنامه نویس هستی
سلام ,

نوع فیلد رو روی nvarchar تنظیم کنید حل میشه.حالا بستگی به نیازتون با اندازه های مختلف.