PDA

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



rezasheshbolooki
شنبه 20 فروردین 1390, 16:46 عصر
سلام.

کسی می دونه چجوری میشه اطلاعات رو فارسی توی بانک از طریق سی شارپ وارد کرد؟

من از همون 5 دستور اطلاعات وارد می کنم. ممنون میشم اگه منو راهنمایی کنین. از sql استفاده می کنم

از این دستورا استفاده می کنم

connection new
sql data adaptor
sql data set
.
.
.

Directx
شنبه 20 فروردین 1390, 17:03 عصر
سلام این سوال بارها پرسیده شده است چک کنید ببینید آیا متون به صورت علامت سوال(؟) دیده می شود اگر این طور بود collation ه مربوط به بانکت رو می تونی persian_100_ci_as قرار بدی در غیر این صورت یعنی کلا ثبت نشدن اطلاعات مشکل مربوط به کد است

rezamansori
شنبه 20 فروردین 1390, 17:53 عصر
فیلد ها رو از نوع VarChar بساز.

rezasheshbolooki
شنبه 20 فروردین 1390, 18:05 عصر
سلام این سوال بارها پرسیده شده است چک کنید ببینید آیا متون به صورت علامت سوال(؟) دیده می شود اگر این طور بود collation ه مربوط به بانکت رو می تونی persian_100_ci_as قرار بدی در غیر این صورت یعنی کلا ثبت نشدن اطلاعات مشکل مربوط به کد است



خب من میتونم انگلیسی وارد کنم در صورتیکه سرستون ها و نوشته ها انگلیسی باشه. ولی فارسی نمیشه!

Directx
شنبه 20 فروردین 1390, 18:10 عصر
دوست عزیز همون طور که گفتم و بازم می گم اگه sql server managment داری log شو و روی بانکت راست کلیک کن و propertis رو انتخاب و از کادر سمت چپ options و ببین collation بانکت چیه

rezasheshbolooki
شنبه 20 فروردین 1390, 18:17 عصر
دوست عزیز همون طور که گفتم و بازم می گم اگه sql server managment داری log شو و روی بانکت راست کلیک کن و propertis رو انتخاب و از کادر سمت چپ options و ببین collation بانکت چیه

اخوی کاری که گفتیو کردم و جلوش نوشته بود : Arabic_CI_AI . حالا چکار کنم؟ :متفکر:

Directx
شنبه 20 فروردین 1390, 18:22 عصر
ok حالا فهمیدم (از پست قبلیتون)
دوست عزیز شما که نباید نام فیلدها رو فارسی انتخاب کنید شما نام فیلدها رو یه اسم انگلیسی خوب با توجه به محتوای فیلد انتخاب کنید و فقط موقع نمایش اونها می تونید نام header ها رو فارسی نمایش بدید

rezasheshbolooki
شنبه 20 فروردین 1390, 18:27 عصر
ok حالا فهمیدم (از پست قبلیتون)
دوست عزیز شما که نباید نام فیلدها رو فارسی انتخاب کنید شما نام فیلدها رو یه اسم انگلیسی خوب با توجه به محتوای فیلد انتخاب کنید و فقط موقع نمایش اونها می تونید نام header ها رو فارسی نمایش بدید

آهان. متوجه شدم. بعدش اگر بخوام تو سی شارپ اطلاعات فارسی وارد بانک بکنم ارور میده. ولی انگلیسی مشکلی نداره! میشه منو راهنمایی کنی ؟

Directx
شنبه 20 فروردین 1390, 18:33 عصر
بله اگه کمک از دستم بربیاد
حلا کلا می خوایید چیکار کنید

rezasheshbolooki
شنبه 20 فروردین 1390, 18:41 عصر
بله اگه کمک از دستم بربیاد
حلا کلا می خوایید چیکار کنید

من دارم واسه پسر خالم که داره یه آرایشگاه میزنه یه برنامه میسازم.

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

4 تا جدول می خواد که شامل:

مشتری : نام-کد-تاریخ تولد-تلفن-تعداد افراد معرفی کننده-تاریخ ازدواج

تاریخچه ارتبطات مشتری: کد و نام(مشتری)-تاریخ مراجعه-خدمات دریافت شده -مبلغ اخذ شده - مجموع ریالی مراجعات

خدمات : نام خدمت - کد - قیمت - اسم آرایشگر

فاکتور: شماره - تاریخ - شماره مشتری - نام مشتری-نوع خدمات-نام آرایشگر-قیمت-قیمت نهایی


اون جداولش بودن . ولی من مشکلی با کد نویسیش ندارم. موندم چجوری اسم مشتری رو مثلا رضا شش بلوکی وارد کنم(فارسی) یا تاریخ رو به شمسی وارد کنم. نظرت چیه؟

Directx
شنبه 20 فروردین 1390, 19:01 عصر
دوست عزیز اولا برای تاریخ:
نوع فیلد date فقط برای تاریخ میلادی هستش اگه می خوایید تاریخ رو ذخیره کنید می تونید به صورت ساده یعنی فقط srting اون رو به بانک بفرستید و از نوع هایی مثل (10)varchar و ... استفاده کنید ولی اگه می خوایید واقعا اصولی کار کنید و از date time picker استفاده کنید توصیه می کنم که از برنامه ی تبدیل شمسی به میلادی (سرچ کنی پیدا میشه تو همین سایت) و برعکس استفاده کنی یعنی برای ذخیره به میلادی تبدیل کنی و موقع نمایش به شمسی برگردونی
در مورد اسم مشتری هم می تونی که از فیلد با نوع های معمولی مثل (50)varchar یا هر نوع که خودت صلاح می دونی استفاده کنی و هرجور دوست داشتی ذخیره کنی( منظورت از شش بلوکی رو نفهمیدم)

rezasheshbolooki
شنبه 20 فروردین 1390, 23:10 عصر
دوست عزیز اولا برای تاریخ:
نوع فیلد date فقط برای تاریخ میلادی هستش اگه می خوایید تاریخ رو ذخیره کنید می تونید به صورت ساده یعنی فقط srting اون رو به بانک بفرستید و از نوع هایی مثل (10)varchar و ... استفاده کنید ولی اگه می خوایید واقعا اصولی کار کنید و از date time picker استفاده کنید توصیه می کنم که از برنامه ی تبدیل شمسی به میلادی (سرچ کنی پیدا میشه تو همین سایت) و برعکس استفاده کنی یعنی برای ذخیره به میلادی تبدیل کنی و موقع نمایش به شمسی برگردونی
در مورد اسم مشتری هم می تونی که از فیلد با نوع های معمولی مثل (50)varchar یا هر نوع که خودت صلاح می دونی استفاده کنی و هرجور دوست داشتی ذخیره کنی( منظورت از شش بلوکی رو نفهمیدم)

:لبخند:
حالا بعدا اونارو یکاری می کنم. شما فعلا به من بگو که چجوری توی سی شارپ یه کلمه فارسی رو توی بانک اینسرت کنم؟ چجوری سر ستون هارو فارسی بیارم تو سی شارپ؟ اصلا اگه یاهو مسنجر داری بده تا اد کنم. دستت درد نکنه! ایشاالله جبران کنم

arta.nasiri
یک شنبه 21 فروردین 1390, 00:22 صبح
:لبخند:
حالا بعدا اونارو یکاری می کنم. شما فعلا به من بگو که چجوری توی سی شارپ یه کلمه فارسی رو توی بانک اینسرت کنم؟ چجوری سر ستون هارو فارسی بیارم تو سی شارپ؟ اصلا اگه یاهو مسنجر داری بده تا اد کنم. دستت درد نکنه! ایشاالله جبران کنم

سلام

واسه اینکه کلمات فارسی رو INSERT کنی این روش فکر کنم جواب بده

INSERT INTO tbl_name(name,lname) VALUES (N'" + TextBox1.Text + "',N'" + TextBox2.Text + "')
یعنی قبل از اینکه مقدار یکی از فیلد ها رو بدی N رو بهش اضافه کن طبق مثال بالا

ولی اگه از روش ارسال پارامتر و sp برای درج در بانک اطلاعاتی استفاده میکنی و نوع فیلدی که انتخاب کردی nvarchar باشه دیگه اینا لازم نیست.

rezasheshbolooki
یک شنبه 21 فروردین 1390, 12:10 عصر
سلام

واسه اینکه کلمات فارسی رو INSERT کنی این روش فکر کنم جواب بده

INSERT INTO tbl_name(name,lname) VALUES (N'" + TextBox1.Text + "',N'" + TextBox2.Text + "')
یعنی قبل از اینکه مقدار یکی از فیلد ها رو بدی N رو بهش اضافه کن طبق مثال بالا

ولی اگه از روش ارسال پارامتر و sp برای درج در بانک اطلاعاتی استفاده میکنی و نوع فیلدی که انتخاب کردی nvarchar باشه دیگه اینا لازم نیست.

آقا دستت درد نکنه. حالا تست می کنم ببینم چی میشه! ولی اگر مثل مثال شما اون بالا به جای (name,lname) از حرف فارسی استفاده کنم مشکلی نداره؟ آخه سرستون ها توی جداول فارسیه!

S.Reza
یک شنبه 21 فروردین 1390, 12:17 عصر
آقا دستت درد نکنه. حالا تست می کنم ببینم چی میشه! ولی اگر مثل مثال شما اون بالا به جای (name,lname) از حرف فارسی استفاده کنم مشکلی نداره؟ آخه سرستون ها توی جداول فارسیه!

دوست عزیز فیلد ها بهتره که اسم فارسی نداشته باشند شاید این فیلدها در کامپیوتر شما جواب بده اما شک نکنید که در کامپیترهای دیگه به مشکل شناخته نشدن فیلد مواجه می شوید

rezasheshbolooki
یک شنبه 21 فروردین 1390, 12:30 عصر
دوست عزیز فیلد ها بهتره که اسم فارسی نداشته باشند شاید این فیلدها در کامپیوتر شما جواب بده اما شک نکنید که در کامپیترهای دیگه به مشکل شناخته نشدن فیلد مواجه می شوید

یعنی هیچ راهی نداره که فیلدها فارسی باشه؟ من خیلی برنامه هارو دیدم که فارسی بود. نمیشه با یه بانک دیگه فارسیش کرد؟ اگه انگلیسی باشه زیاد جالب نیست!

ehsanara
یک شنبه 21 فروردین 1390, 12:42 عصر
چرا سرستون ها رو فارسی مینویسی؟
اگه کلا میخوای جدول رو با Headerها تو برنامت بیاری نام فیلدها رو انگلیسی بنویس و تو Select برا نام ستون ها اسم فارسی بزار

اگه متوجه نشدی بگو برات توضیح بدم

rezasheshbolooki
یک شنبه 21 فروردین 1390, 12:56 عصر
چرا سرستون ها رو فارسی مینویسی؟
اگه کلا میخوای جدول رو با Headerها تو برنامت بیاری نام فیلدها رو انگلیسی بنویس و تو Select برا نام ستون ها اسم فارسی بزار

اگه متوجه نشدی بگو برات توضیح بدم

چجوری تو دستور select واسشون header بزارم؟ کجاش بنویسم؟ بعدش فارسی میشه؟ اگه دستورشو بنویسی ممنونت میشم.

ehsanara
یک شنبه 21 فروردین 1390, 13:29 عصر
SELECT Name As [نام موردنظر] FROM NameTbl

rezasheshbolooki
یک شنبه 21 فروردین 1390, 15:32 عصر
SELECT Name As [نام موردنظر] FROM NameTbl

این عکس جدول منه. دقیقا باید چی بنویسم؟

http://up.iranblog.com/images/hla0vh51c2xclh5z2di.jpg (http://up.iranblog.com/)

ehsanara
یک شنبه 21 فروردین 1390, 17:23 عصر
این Query رو تو DataBase اجرا کن و نتیجه رو ببین

USE ARAYESHGAH
SELECT namem AS [نام] , Codem AS [کد] , tell AS [تلفن] , Tarikhtavalod AS [تولد ] , moarefi AS [معرفی]
FROM Moshtari

ehsanara
یک شنبه 21 فروردین 1390, 17:37 عصر
ولی من پیشنهاد میدم از View استفاده کنی
Table رو به جدول Add کن و فیلدهایی که میخوای ببینی رو تیک بزن و تو ستون Alias جلو هر فیلد اسمس که میخوای رو بنویس بعد از اون View میتونی SELECT کنی
اینطوری دیگه نیازی نیست مثل بالا همه ستون ها رو بنویسی و نام گذاری کنی

rezasheshbolooki
یک شنبه 21 فروردین 1390, 23:49 عصر
ولی من پیشنهاد میدم از View استفاده کنی
Table رو به جدول Add کن و فیلدهایی که میخوای ببینی رو تیک بزن و تو ستون Alias جلو هر فیلد اسمس که میخوای رو بنویس بعد از اون View میتونی SELECT کنی
اینطوری دیگه نیازی نیست مثل بالا همه ستون ها رو بنویسی و نام گذاری کنی

آقا دستت درد نکنه. مرسی. یه دنیا! :لبخندساده::تشویق:

azaditafakor
دوشنبه 22 فروردین 1390, 07:18 صبح
تالار پایگاه داده جای دیگه اس.

rezasheshbolooki
دوشنبه 22 فروردین 1390, 11:30 صبح
ولی من پیشنهاد میدم از View استفاده کنی
Table رو به جدول Add کن و فیلدهایی که میخوای ببینی رو تیک بزن و تو ستون Alias جلو هر فیلد اسمس که میخوای رو بنویس بعد از اون View میتونی SELECT کنی
اینطوری دیگه نیازی نیست مثل بالا همه ستون ها رو بنویسی و نام گذاری کنی


آقا یه مشکل دیگه. اونکاری که گفتی رو کردم ولی توی datagridview فارسی نشد! کد رو باید کجای C# بنویسم؟

ehsanara
سه شنبه 23 فروردین 1390, 10:21 صبح
کدو کار؟
View ساختی یا [نام]Field AS استفاده کردی؟
این برنامه رو با DataBase ببین

68616
68615
68614

البته درنهایت این Queryها رو با StoreProcedure بنویسی بهتره

rezasheshbolooki
سه شنبه 23 فروردین 1390, 14:55 عصر
کدو کار؟
View ساختی یا [نام]Field AS استفاده کردی؟
این برنامه رو با DataBase ببین

68616
68615
68614

البته درنهایت این Queryها رو با StoreProcedure بنویسی بهتره

نمیشه. مگه فولدر DB کجا باید ریخت؟ هرجا میریزم موقع Run کردن برنامه وایمیسته!

این کد منه! کجاش باید بزنم که فارسی بشه؟

http://up.iranblog.com/images/hqah02i6abn3903xkjh9.jpg (http://up.iranblog.com/)

ehsanara
سه شنبه 23 فروردین 1390, 19:04 عصر
شما تو این کد میخوای Insert کنی یا Select ؟
برنامه ای که برات گذاشتم رو ندیدی؟

SianiD
سه شنبه 23 فروردین 1390, 19:57 عصر
من دارم واسه پسر خالم که داره یه آرایشگاه میزنه یه برنامه میسازم.

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

4 تا جدول می خواد که شامل:

مشتری : نام-کد-تاریخ تولد-تلفن-تعداد افراد معرفی کننده-تاریخ ازدواج

تاریخچه ارتبطات مشتری: کد و نام(مشتری)-تاریخ مراجعه-خدمات دریافت شده -مبلغ اخذ شده - مجموع ریالی مراجعات

خدمات : نام خدمت - کد - قیمت - اسم آرایشگر

فاکتور: شماره - تاریخ - شماره مشتری - نام مشتری-نوع خدمات-نام آرایشگر-قیمت-قیمت نهایی


اون جداولش بودن . ولی من مشکلی با کد نویسیش ندارم. موندم چجوری اسم مشتری رو مثلا رضا شش بلوکی وارد کنم(فارسی) یا تاریخ رو به شمسی وارد کنم. نظرت چیه؟

نوع داده هات باید nvarchar باشه

rezasheshbolooki
سه شنبه 23 فروردین 1390, 23:08 عصر
نوع داده هات باید nvarchar باشه

هست. مگه نباید فیلد هایی که قراره توش عدد وارد بشه(کد مشتری) از نوع Int باشه؟

امیر اکبری
چهارشنبه 24 فروردین 1390, 09:36 صبح
چرا خودتو اذیت می کنی دوست عزیز نوع فیلدهاتو تو بانک به جای char بزار varchar.

rezasheshbolooki
چهارشنبه 24 فروردین 1390, 21:32 عصر
چرا خودتو اذیت می کنی دوست عزیز نوع فیلدهاتو تو بانک به جای char بزار varchar.


اوکی. مرسی