• 1405/05/21

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

سلام استاد مدائنی عزیز وقتتون بخیر 

استاد من یه روش دیگه ای رو امتحان کردم برای پاس دادن ایدی کلاس از لیست کلاس ها به فرم افزودن یا ویرایش ,  و ممنون میشم که نظرتون بگید و اینکه ایا این روش هم روش مناسبی هست یا خیر

سپاس از شما

 private int? _courseId;
 private bool isEdite = false;
 public frmAddOrEditCourse(int? courseId = 0)
 {
     _courseId = courseId;
     InitializeComponent();
 }

استاد در خط اول در این کد 

 private int? _courseId;

به این دلیل null پذیرش کردم چون این فرم ما , هم قراره ثبت دوره کنه هم ویرایش دوره , برای ثبت دوره نیازی پاس دادن ایدی به این فرم نیست پس اگه null پذیر نباشه کانستراکتور در هنگام نمونه سازی برای ثبت دوره با ارور مواجه میشه .

 و کدی که در خود کانستراکتور نوشتم اگه مقدار  داخلش null بود مقدارش 0 بشه.

   private void btnEditCourse_Click(object sender, EventArgs e)
   {
       if (dgvCoursesList.CurrentRow!=null)
       {
           string id = dgvCoursesList.CurrentRow.Cells[0].Value.ToString();
           int courseId = Convert.ToInt32(id);
           frmAddOrEditCourse addOrEditCourse = new frmAddOrEditCourse(courseId);
           addOrEditCourse.ShowDialog();
           BindDgvCourseList();

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

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

فقط این روش یه جایی مشکل داشت اونم زمانی که ما میخواستیم مقدایر دوره رو ادیت کنیم و باید مقدار courseId_   رو داخل courseId خود کلاس میزاشتیم  یعنی این قسمت

 course.CourseId = _courseId;
_context.courses.Update(course);

در این قسمت برنامه یه اروری داد ارور آن این بود که مقدار  course.CourseId نباید خالی باشه ولی متغیر  courseId_  نال پذیر است و روش برطرف کردن آن هم Cast کردن اون متغیر به int بود

 

  • 1405/05/22
  • ساعت 08:09

سلام

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


  • 1405/05/22
  • ساعت 08:38

سپاسگزارم از لطف و توجهتون اقای مدائنی