PDA

View Full Version : سوال: مشکل gridview با زبان فارسی



roholla.sadeghi
دوشنبه 19 تیر 1391, 20:01 عصر
سلام

من از وقتی ویندوز عوض کردم (تا حالا بارها عوض میکردم و مشکلی نبودا) ویژوال استادیوم یه جوری شده!
اولأ تو محیط IDE که فارسی تایپ میکنم، ی ها رو نمیچسبونه (ی آخر مینویسه) و ثانیأ فونتش انگاری عوض شده! فکر کنم قبلأ Tahoma بود و الان Arial BOLD شده!

مشکل من این نیستا!

مشکل من اینه که برنامه هایی که مینویسم، اطلاعات فارسی که وارد دیتابیسم میکنم، وقتی تو گرید ویوو میخوام نمایش بدم بجای کاراکتر های فارسی علامت سوال میندازه ( مثلأ بجای "علی" مینویسه: "؟؟؟" )

قبلأ با همین دیتابیس (sql express e visual studio 2010) برنامه نوشتم اما این مشکل رو نداشتم.
راستی، این مشکل رو تو پروژه هایی که تو ویندوز قبلی نوشته بودم ندارما! اونا فارسی مینویسن! این جدیده علامت سوال میندازه!

کسی میدونه مشکلش تو چیه؟ چیکارش باید بکنم؟

ahmadreza517
دوشنبه 19 تیر 1391, 20:25 عصر
به نام تنها برنامه نویس هستی
سلام ,

نوع فیلدهای متنی رو با nvarchar تنظیم کنید.

veniz2008
دوشنبه 19 تیر 1391, 20:44 عصر
موقع درج داده ها یه حرف N قبل از ورودی هات بذار،به اینصورت:

SqlCommand cmd = new SqlCommand("insert into student(name,family)values(N'"+textBox2.Text+"' ,N'"+textBox3.Text + "')",conn);

موفق باشید.

roholla.sadeghi
دوشنبه 19 تیر 1391, 21:08 عصر
به نام تنها برنامه نویس هستی
سلام ,

نوع فیلدهای متنی رو با nvarchar تنظیم کنید.

مرسی دوست عزیز

دفعه اول از نوع text ساخته بودم، بعد گفتم شاید باید nvarchar باشه (گرچه ربطی نداره! با همون تکست هم باید فارسی ساپورت کنه!) ولی باز هم با nvarchar جواب نداد و علامت سوال میداد!

roholla.sadeghi
دوشنبه 19 تیر 1391, 21:10 عصر
موقع درج داده ها یه حرف N قبل از ورودی هات بذار،به اینصورت:

SqlCommand cmd = new SqlCommand("insert into student(name,family)values(N'"+textBox2.Text+"' ,N'"+textBox3.Text + "')",conn);

موفق باشید.

خیلی ممنون از راهنمایی خوبتون.
من این نکته رو نمیدونستم.

از دوستم پرسیدم گفت آره اگه N بذاری فارسی ثبت میکنه.

اما باز هم جواب نداد.

سوتی نمیدما! با دقت هم نوشتم.


اما فکر کنم مشکل از جای دیگه ای باشه :(


خیلی ممنون از کمکتون

veniz2008
دوشنبه 19 تیر 1391, 22:01 عصر
شما بعد از اینکه این تغییرات رو دادید یعنی نوع داده رو nvarchar گرفتی و از N استفاده کردی باید داده جدید وارد جدول کنی تا نتیجه رو ببینی،خلاصه بگم داده های قبلی همونطور علامت سوال باقی میمونن،اما داده های جدیدت بطور صحیح ثبت میشن.
موفق باشید.

ehsan7007
سه شنبه 31 مرداد 1391, 16:08 عصر
سلام دوستان.
منم این مشکل رو دارم ولی نمی دونم کجا N بزارم. داده هام هم nvarchar هستند.
کدم اینه :


else
{
cmd.CommandText = "insert into Table1(id,name1,name2)values(@id,@name1,@name2)";
}

cmd.Parameters.Add("@name1", SqlDbType.Char).Value = textBox2.Text;
cmd.Parameters.Add("@name2", SqlDbType.Char).Value = textBox3.Text;
cmd.Parameters.Add("@id", SqlDbType.Int).Value = textBox7.Text;

ehsan7007
سه شنبه 31 مرداد 1391, 20:00 عصر
میشه یکی بگه من باید چیکار کنم؟
واقعا مثله این که ویژال استدیو با من لج داره ، اخه هر کار معمولی که انجام می دم یه خطای نا معلومی می گیره!!! :گریه:

felfely
سه شنبه 31 مرداد 1391, 20:38 عصر
سلام
شما دو تا راه دارین
یا


cmd.Parameters.Add("@name1", SqlDbType.NVarChar).Value = textBox2.Text;
cmd.Parameters.Add("@name2", SqlDbType.NVarChar).Value = textBox3.Text;
cmd.Parameters.Add("@id", SqlDbType.Int).Value = textBox7.Text;



و یا


cmd.Parameters.AddWithValue("@name1", textBox2.Text);
cmd.Parameters.AddWithValue("@name2", textBox3.Text);
cmd.Parameters.AddWithValue("@id", textBox7.Text);

ehsan7007
سه شنبه 31 مرداد 1391, 20:49 عصر
کاری که شما برای من کردید فراتر از کلیک روی "تشکز" است.:قلب:
واقعا ازتون ممنونم با همون اولی حل شد.خودم اشتباه تعریف کرده بودم! :خجالت: