مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

robinashly

عضویت از 1397/11/25

خطا در هنگام Add کردن به مجموعه آبجکتها در Entity

  • جمعه 26 بهمن 1397
  • 20:26
تشکر میکنم

با سلام و عرض خسته نباشید

با EF کار میکنم و درون یکی از Entity ها یک فیلد از نوع int  دارم ولی هنگام ADD کردن بهم خطا زیر رو میده : من کدش رو کامل براتون میزارم : 

خطی که تیره کردم خطا میده : Input string was not in as correct format

             DatabaseContext      databaseContext = new Models.DatabaseContext();

                Models.Person person = new Models.Person();

                person.Age =Convert.ToInt32 (txtAge.Text);
                person.Email = txtEmail.Text;

                databaseContext.People.Add(person);
                databaseContext.SaveChanges();

                MessageBox.Show("ثبت با موفقیت انجام شد");

پاسخ های این پرسش

تعداد پاسخ ها : 6 پاسخ
کاربر سایت

رضا نصیری

عضویت از 1392/10/01

  • شنبه 27 بهمن 1397
  • 10:52

سلام. دوست عزیز خطا داره میگه مقدار ورودی که در txtAge وجود داره معتبر نیست, و نمی تونه اونو به Int32 تبدیل کنه.

چک کنید تا کاراکتر غیر عددی در Textbox مربوطه وجود نداشته باشد

کاربر سایت

robinashly

عضویت از 1397/11/25

  • شنبه 27 بهمن 1397
  • 15:43

ممنون از پاسختون 

زمانی که txtPerson رو خالی رد میکنم بهم این پیغام رو میده ،خوب من attributi برای Age نزاشتم که Required بشه ، پس اگه بخوام txtPerson رو خالی رد کنم باید براش  if بزارم که اگر ""=!txtAge.Text اونوقت :

if (txtAge.Text!="")
            {
                person.Age =Convert.ToInt32 (txtAge.Text);
            }

کاربر سایت

رضا نصیری

عضویت از 1392/10/01

  • شنبه 27 بهمن 1397
  • 15:48

اگر می خواهید txtPerson رو خالی گذاشتنی خطایی نگیرد مدلتون رو اینطوری تغییر دهید:

        [StringLength(50)]
        public string FirstName { get; set; }

        [StringLength(50)]
        public string LastName { get; set; }

کاربر سایت

robinashly

عضویت از 1397/11/25

  • شنبه 27 بهمن 1397
  • 15:56

ممنون از پاسختون 

زمانی  که txtAge رو خالی رد میکنم بهم این پیغام رو میده ،خوب من attributi برای Age نزاشتم که Required بشه ، پس اگه بخوام txtAge رو خالی رد کنم باید براش  if بزارم که اگر ""=!txtAge.Text اونوقت :

if (txtAge.Text!="")
            {
                person.Age =Convert.ToInt32 (txtAge.Text);
            }
کاربر سایت

رضا نصیری

عضویت از 1392/10/01

  • شنبه 27 بهمن 1397
  • 16:18

دوست عزیز اگر امکانش هست از این به بعد سوالتون رو تمیز و در قالب یک باکس بپرسید تا ماهم در حد توان جواب بدیم. روی سوال تاپیک یچیز هست, و سوالات داخل تاپیک یچیز دیگه. از این شاخه به اون شاخه پریدن حواس هر دوی مارو پرت میکنه.

--------------

خب حالا هرچی بگذریم ...

اگر مشکل txtPerson حل شد, بله با یک شرط ساده که خودتون هم نوشتید می تونید خطای txtAge رو هم  Handle کنید.

کاربر سایت

robinashly

عضویت از 1397/11/25

  • شنبه 27 بهمن 1397
  • 16:51

بله حتما

 ممنونم از پاسختون .

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)