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

نام تاپیک: برنامه نویسی بر روی یک دیتا بیس از قبل تکمیل شده

  1. #1

    برنامه نویسی بر روی یک دیتا بیس از قبل تکمیل شده

    با سلام و خسته نباشید . من تازه شروع به برنامه نویسی سی شارپ کردم .یه جدول از مشخصات همکارانم را توی SQL ایجاد کردم ..رسیدم به جایی که میخوام اطلاعات وارد شده به جدولم را ثبت کنم ولی پیام خطا می داد روی مقادیر عددی مثل کد ملی و تعداد فرزندان ...اونا رو کانورت کردم و کدش رو بدینصورت نوشتم
    (NationalCode = Convert.ToInt32(txtNationalCode.Text
    بعد که فیلد ها رو تو فرم پر میکنم و دکمه ثبت رو میزنم ..میرو رو قسمت کد وایمیسه...

  2. #2

    نقل قول: برنامه نویسی بر روی یک دیتا بیس از قبل تکمیل شده

    سلام،
    NationalCode = Convert.ToInt32(txtNationalCode.Text);

  3. #3
    کاربر دائمی آواتار ShayanFiroozi
    تاریخ عضویت
    شهریور 1397
    محل زندگی
    بندرعباس ، خلیج همیشه فارس
    سن
    38
    پست
    224

    نقل قول: برنامه نویسی بر روی یک دیتا بیس از قبل تکمیل شده

    سلام دوست عزیز

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

    پس مقادیری که واقعا ضرورت ندارند رو به شکل رشته ذخیره کنین نه عدد (این کار دلایل زیادی داره مثلا بعد ها اگر بخواین یه قسمت از کد ملی یک نفر رو جستجو کنین در مقادیر عددی این امکان پذیر نیست).

    دوما توجه داشته باشین کد ملی استاندارد ایران 10 رقم هست بنا بر این شما نمیتونین کد ملی حدود 60 میلیون ایرانی رو با این روش ذخیره کنید چون رقم حداکثر یه متغییر int عدد 2,147,483,647 هستش !!

    و این یعنی یه کد ملی مثل : 8976543210 به هیج وجه در یه متغییر Int32 نمیگنجه !!

    شما نوع خطا رو مشخص نکردین(که برای دفعات بعد و طبق قوانین پرسش و پاسخ انجمن بهتره این کار رو انجام بدین) ولی به احتمال قوی خطای overflow دریافت میکنین.
    آخرین ویرایش به وسیله ShayanFiroozi : دوشنبه 09 تیر 1399 در 00:17 صبح

  4. #4

    نقل قول: برنامه نویسی بر روی یک دیتا بیس از قبل تکمیل شده

    سلام مهندس عزیز ..خیلی ممنون از پاسخ کاملتون . من کارمند یه شرکتم با تعداد حدود 300 نفر کارمند .. اطلاعاتش رو داشتم تو یه بانک تو SQL ایمپورت کردم و دو تا از فیلدهای عددیم که یکی کد ملی و یکی تعداد فرزندان بود رو فقط با دیتا تایپ float قبول کرد . کد ملی رو هم کلید گذاشتم .. حالا که فرم ها رو درست کردم ..کل اطلاعات تو گریدویو میاد ..اما موقع افزودن مشخصات نفر جدید ..اول گیر میداد به کد این دوتا فیلد ..بعد از کانورت به int32 کلا میره تو متد و میمونه و این پیام رو میده انتهای متد:
    System.FormatException: 'Input string was not in a correct format.'

  5. #5
    کاربر دائمی آواتار ShayanFiroozi
    تاریخ عضویت
    شهریور 1397
    محل زندگی
    بندرعباس ، خلیج همیشه فارس
    سن
    38
    پست
    224

    نقل قول: برنامه نویسی بر روی یک دیتا بیس از قبل تکمیل شده

    به این دلیله که متد Convert.ToIn32 نمیتونه هر رشته ای رو به عدد تبدیل کنه مثلا رشته "ABCD" رو به چه عددی تبدیل کنه ؟

    شما راحتترین و اصولی ترین کارتون اینه که کد های ملی رو با فرمت string ذخیره کنین ، هم راحت تره هم کاملا Safe هستش.

    اگر دیتابیس به درستی طراحی نشده بهتره درستش کنین ، میتونین اون جدول رو Drop And Create کنین ، فقط قبلش بک آپ بگیرین.
    ضمنا برای تعداد فرزندان درست اینه که مقدار عددی باشه ، چرا ؟ چون ممکنه روزی عملیات ریاضی بخواین انجام بدین ، مثلا جمع تعداد فرزندان کارمند ها یا هر چیز دیگه.
    ولی در خصوص کد ملی اینطور نیست ، فقط یه رشته 10 رقمی از اعداده همین ، رشته میتونه کلید Unique هم باشه ، پس فیلد کد ملی شما میتونه از نوع رشته یا nvarchar(10) باشه و همزمان کلید و Unique باشه.

  6. #6

    نقل قول: برنامه نویسی بر روی یک دیتا بیس از قبل تکمیل شده

    شایان جان ببخشید . کد ملی رو گذاشتم nvarchar(10) حالا بازم باید کانورت کنم .تعداد فرزندان و هم int گذاشتم ..

  7. #7
    کاربر دائمی آواتار ShayanFiroozi
    تاریخ عضویت
    شهریور 1397
    محل زندگی
    بندرعباس ، خلیج همیشه فارس
    سن
    38
    پست
    224

    نقل قول: برنامه نویسی بر روی یک دیتا بیس از قبل تکمیل شده

    اگر نوع فیلد مبدا از نوع رشته ای هست خیر ولی خوب به هر حال انتهای رشته یعنی جایی که داده رو به فیلد مقداد میدید یه .ToString() هم بذارید بد نیست.

تاپیک های مشابه

  1. سوال: برنامه نویسی ساختار درختی و سلسله مراتبی از روی دیتابیس
    نوشته شده توسط FirstLine در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: یک شنبه 13 خرداد 1397, 11:10 صبح
  2. پاسخ: 2
    آخرین پست: پنج شنبه 11 تیر 1394, 16:11 عصر
  3. پاسخ: 6
    آخرین پست: پنج شنبه 26 بهمن 1391, 21:46 عصر
  4. پاسخ: 0
    آخرین پست: چهارشنبه 25 بهمن 1391, 10:05 صبح
  5. پاسخ: 2
    آخرین پست: چهارشنبه 17 آذر 1389, 20:08 عصر

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

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