PDA

View Full Version : سوال: ورود اطلاعات فارسی از سی شارپ به اس کیوال



ejhost
یک شنبه 26 آذر 1391, 13:45 عصر
باسلام خدمت اساتید گرامی
بنده در حال طراحی یک نرم افزار هستم که همه چیز به خوبی و خوشی پیش رفته. تنها مشکلی که الان من رو کلافه کرده ورود اطلاعات فارسی از برنامه به دیتابیس است مثلا مقادیر زیر را (بدون کوتیشن هستند):
"1-مداد"
"2-خودکار"
"3-پاک کن"

به صورت:
"مداد-1"
"خودکار-2"
"پاک کن-3"

در جداول ذخیره می کند.
هرکاری کردم از جمله Unicode و غیره باز درست نشد.
لطفا به دادم برسید.
ممنون

saber_ershadi
یک شنبه 26 آذر 1391, 13:49 عصر
نوع فیلدی که این اطلاعات توش دخیره میشه چیه؟

ejhost
یک شنبه 26 آذر 1391, 13:55 عصر
نوع فیلدی که این اطلاعات توش دخیره میشه چیه؟
باتشکر، Ntext

saber_ershadi
یک شنبه 26 آذر 1391, 13:56 عصر
از Nvarchar(50)d استفاده کردی؟

ejhost
یک شنبه 26 آذر 1391, 13:57 عصر
از Nvarchar(50)d استفاده کردی؟
بله استفاده کردم، ولی اون d آخر رو نذاشتم، اون چیه؟

saber_ershadi
یک شنبه 26 آذر 1391, 14:00 عصر
هیچی از دستم در رفت حالا این بر عکس نشون دادن کجا اتفاق میوفته میری تو بانک یا از دیتا گرید می خونی؟
میتونی سورس رو بزاری ببینیم چه خبره؟

ejhost
یک شنبه 26 آذر 1391, 14:05 عصر
هیچی از دستم در رفت حالا این بر عکس نشون دادن کجا اتفاق میوفته میری تو بانک یا از دیتا گرید می خونی؟
میتونی سورس رو بزاری ببینیم چه خبره؟
ممنون. سورس خاصی نداره، همون insert کردن معمولیه. ولی موقع insert کردن داخل textBox، راست چین می کنم بعد می نویسم 1-مداد ، بعد که دکمه insert رو می زنم داخل جداول دیتابیس برعکس نشون میده، یونیکد هم کردم باز نشد. حالا مشکل فقط در دیتابیس نیست، موقع واکشی اطلاعات بازهم برعکس نشون میده. عدد با متن رو قاطی میکنه، متن خالی بدون مشکل ذخیره و واکشی میشه. فکر کنم یه جا یه چیز کوچولو موچولو داره باید فعالش کنم تا درست شه، کلافم کرده به خدا...

hamid.karimy
یک شنبه 26 آذر 1391, 14:07 عصر
دوست عزیز اول اینکه ntext رو ماکروسافت گفته استفاده نکنید بجاش nvarcvhar(max) رو استفاده کنید
دوم اینکه ربطی به sql نداره شما چجوری اطلاعات رو از برنامه به دیتابیس انتقال میدید؟ باید قبل از این متغیرها N زده بشه مثل
insert into felan value N'1-مداد'

ejhost
یک شنبه 26 آذر 1391, 14:12 عصر
دوست عزیز اول اینکه ntext رو ماکروسافت گفته استفاده نکنید بجاش nvarcvhar(max) رو استفاده کنید
دوم اینکه ربطی به sql نداره شما چجوری اطلاعات رو از برنامه به دیتابیس انتقال میدید؟ باید قبل از این متغیرها N زده بشه مثل
insert into felan value N'1-مداد'

من از Nvarchar(50) استفاده کردم ولی از مکس نه! فکر هم نکنم فرقی داشته باشن درسته؟
از N هم استفاده کردم باز نشد. همین دیوونه میکنه آدمو

saber_ershadi
یک شنبه 26 آذر 1391, 14:14 عصر
من تو برنامه هام از sql استفاده میکنم هیچ مشکلی ندارم متن هام رو از nvarchar استفاده میکنم و تکست باکس های فارسی هم راست به چپ هستند و فونت اونها هم tahoma هستن مشکلی ندارم اینطوری سخت میشه گفت چیکار باید بکنی همین سورسی که میگی مشکل داره رو بفرست ببینیم چه خبره

ejhost
یک شنبه 26 آذر 1391, 14:20 عصر
من تو برنامه هام از sql استفاده میکنم هیچ مشکلی ندارم متن هام رو از nvarchar استفاده میکنم و تکست باکس های فارسی هم راست به چپ هستند و فونت اونها هم tahoma هستن مشکلی ندارم اینطوری سخت میشه گفت چیکار باید بکنی همین سورسی که میگی مشکل داره رو بفرست ببینیم چه خبره
عین همینه خطش:

('insert into table1 values(N'textbox1.text

ejhost
یک شنبه 26 آذر 1391, 14:24 عصر
به نظر شما میشه یه جور از توابع Stream ویا Unicode استفاده کرد که درست شه؟

ordebehesht
یک شنبه 26 آذر 1391, 14:37 عصر
میتونی بری تو sql از collection زبان persian رو انتخواب کنی منم مثل دوستمون مشکلی ندارم با کد بالا

ordebehesht
یک شنبه 26 آذر 1391, 14:39 عصر
عین همینه خطش:

('insert into table1 values(N'textbox1.text


خود سورسو بزار اینطوری که قابل فهم نیست من الان از این کد دهتا خطا برات میتونم بگم مثلا چرا از "" دابل کوتیشن استفاده نکردی و .....
خود سورسو بزار

hamid.karimy
دوشنبه 27 آذر 1391, 15:08 عصر
خود سورسو بزار اینطوری که قابل فهم نیست من الان از این کد دهتا خطا برات میتونم بگم مثلا چرا از "" دابل کوتیشن استفاده نکردی و .....
خود سورسو بزار
چجوری از این خط ده تا خطا در میاری؟ اون یه دونه هم که گفتی درست نبود که تو دستور sql همینجوریه

ضمن اینکه ejhost جان.بگو چجوری وصل میشی به دی بی از دیتاست استفاده می کنی یا انتیتی فرمورک یا یلخی

mortezasar
دوشنبه 27 آذر 1391, 17:13 عصر
دوست عزیز میشه بگی برنامه ات چیکار میکنه شاید سناریوت اشتباهه چرا اولش عدد میذاری میخوای شماره بدی بهشون یا تعداد یا کد یا ردیف