نمایش نتایج 1 تا 10 از 10

نام تاپیک: مشکل در ذخیره عبارات فارسی

  1. #1
    کاربر دائمی آواتار Bahar_HS
    تاریخ عضویت
    تیر 1387
    محل زندگی
    اراک
    پست
    229

    Question مشکل در ذخیره عبارات فارسی

    با سلام
    در فرمم سه تا کمبوباکس دارم:روز ،ماه وسال،

    در متد زیر برای ذخیره ی تاریخ این دستور رو نوشتم ولی باز هم "ماه"به صورت؟؟؟؟ذخیره میشه ،چکار باید بکنم؟؟
    (بخشی از دستور)
     

    N'" + comboBox1.Text + "',N'" + comboBox2.Text + "',N'" + comboBox3.Text + "'

  2. #2
    کاربر تازه وارد آواتار parsamiga
    تاریخ عضویت
    مهر 1387
    محل زندگی
    تهران
    سن
    39
    پست
    71

    نقل قول: مشکل در ذخیره عبارات فارسی

    منظورتون را دقیق نفهمیدم ولی بهتره از comboBox1.SelectedItem استفاده کنی نه از
    comboBox1.Text
    ....مشکلت حل نشد توضیح بده

  3. #3
    کاربر دائمی آواتار reza6384
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران - شهرک ژاندارمری
    سن
    40
    پست
    740

    نقل قول: مشکل در ذخیره عبارات فارسی

    دوست عزیز.
    به جای ذخیره تاریخ به صورت فارسی تبدیل شده اون رو به میلادی در دیتابیس ذخیره کنید تا بتونید موقع Query گرفتن از Between برای تاریخ استفاده کنید.
    و اما ، برای ذخیره اعداد که N نمی خواد. عجیبه. اگر متن فارسی رو بخواهید در فیلدی ذخیره کنید نوع اون فیلد باید NvarChar یا nText باشه.

  4. #4
    کاربر دائمی آواتار Bahar_HS
    تاریخ عضویت
    تیر 1387
    محل زندگی
    اراک
    پست
    229

    Question نقل قول: مشکل در ذخیره عبارات فارسی

    با سلام
    کمبوباکس ها رو این طوری تعریف کردم:
    برای ماه:
     

    comboBoxMounth.Items.Clear();
    comboBoxMounth.Items.Add("فروردین/1");
    comboBoxMounth.Items.Add("اردیبهشت/2");
    comboBoxMounth.Items.Add("خرداد/3");
    .
    .
    .
    .


    وبرای سال:
     

    comboBoxYear.Items.Clear();
    comboBoxYear.Items.Add("1370");
    comboBoxYear.Items.Add("1371");
    comboBoxYear.Items.Add("1372");
    comboBoxYear.Items.Add("1373")
    .
    .
    .
    .


    در جدول هم نوع همه ی فیلدها رو nvarcahr تعریف کردم،

    مساله اینجاست که همه ی این کارها رو در برنامه ی دیگری انجام دادم و داده های"ماه"درست ذخیره می شن ،اما نمی دونم چرا اینجا داده ها؟؟؟؟ ذخیره میشه،

    این دستوری که برای Insert نوشتم،که در برنامه ی قبلی جواب میده واینجا نه،
     

    String insertstring = "INSERT into Table1(name,family,degree,khedmat,degreerr,khedmat m,finishday,finishmounth,finishyear)VALUES(N'" + textname.Text + "', N'" + textfamily.Text + "', N'" + strdegre + "',N'" + strkhedmatm + "', N'" + textdegree.Text + "', N'" + textkhedmat.Text + "',N'" + comboBoxDay.Text+ "', N'" + comboBoxMounth.Text+ "', N'" + comboBoxYear.Text + "')";
    cmd = new SqlCommand(insertstring, con);
    cmd.ExecuteNonQuery();

  5. #5
    کاربر تازه وارد آواتار parsamiga
    تاریخ عضویت
    مهر 1387
    محل زندگی
    تهران
    سن
    39
    پست
    71

    نقل قول: مشکل در ذخیره عبارات فارسی

    ماه ها که ثابتند چرا کد نوشتی توی properties ( ComboBox از قبل ماه هارا وارد کن
    در ضمن گفتم از به جای ComboBox.Text از comboBox.SelectedItem استفاده کن

  6. #6

    نقل قول: مشکل در ذخیره عبارات فارسی

    يه نگاه به sever collation بنداز ببين arabic هستش؟

  7. #7
    کاربر دائمی آواتار reza6384
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران - شهرک ژاندارمری
    سن
    40
    پست
    740

    نقل قول: مشکل در ذخیره عبارات فارسی

    دوست عزیز.
    با اینکه شیوه بسیار بدی رو برای ذخیره تاریخ در دیتابیس انتخاب کردین، بگین که فیلدهای FinishDay و FinishMonth و FinishYear رو از چه نوعی تعریف کردین؟

  8. #8
    کاربر دائمی آواتار Bahar_HS
    تاریخ عضویت
    تیر 1387
    محل زندگی
    اراک
    پست
    229

    Question نقل قول: مشکل در ذخیره عبارات فارسی

    با سلام
    گفتید"روش بسیار بد"،میشه بگید "روش درست وخوبش" چیه؟

  9. #9
    کاربر دائمی آواتار afsharm
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    http://paysa.ir
    پست
    255

    نقل قول: مشکل در ذخیره عبارات فارسی

    ۱- حتما مسئله مورد اشاره alen را چک کنید.
    ۲- ممکنه همه چیز درست ذخیره شده باشه و فقط در نمایش این طور دیده بشه. یک بار از داخل خود SQL Server نگاه کنید ببینید چطور ذخیره می‌شود.
    ۳- مقدار تولیدی برای insertstring را حین دیباگ چک کنید.
    ۴- با استفاده از Sql Profiler کوئری فرستاده شده به دیتابیس را چک کنید.
    ۵- راه درست‌تر اینه که به جای ذخیره یک رشته فارسی و یا حتی انگلیسی برای فیلد ماه صرفا از یک عدد ۱ تا ۱۲ استفاده کنید. و همانطور که parsamiga گفته به جای text از index استفاده کنید چون هم دقیق‌تر و بدون خطاتره و هم از حملات احتمالی sql injection جلوگیری می‌کند.
    ۶- راه درست‌تر از ۵ اینه که مطابق توصیه reza6384 مقادیر تاریخ را به همان صورت تاریخ میلادی در بانک اطلاعاتی ذخیره کنید. در عوض زحمت کشیده و از توابع تبدیل تاریخ برای ذخیره و نمایش استفاده کنید. برای این کار کتابخانه‌ها و کلاس‌های زیادی وجود دارد حتی می‌توانید از کلاس PersianCalendar در خود دات نت استفاده کنید.
    ۷- راه خیلی بهتری هم هست به نام استفاده از یک ORM مثل NHibernate

  10. #10
    کاربر دائمی آواتار Bahar_HS
    تاریخ عضویت
    تیر 1387
    محل زندگی
    اراک
    پست
    229

    Smile نقل قول: مشکل در ذخیره عبارات فارسی

    باسلام
    و باسپاس از راهنمایی همه ،
    با اینکه می دونستم که نوع فیلدهای جدول باید از نوع nvarchar باشه، ولی اشتباهی روی
    charقرار گرفته بود، که دیگه حل شد،

    آقای افشار از راهنمایی تون خیلی خیلی ممنون، هم خلاصه بود و هم کامل ،
    امیدوارم در پروژه های بعدی بتونم بهتر برنامه بنویسم.


    با آرزو ی موفقیت برای حرفه ای ها و حرفه ای شدن برای تازه کارها

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •