PDA

View Full Version : ارور NullReference Exception was unhandled



angry-man
شنبه 26 اردیبهشت 1394, 00:04 صبح
سلام ، دوستان لطف می کنید برنامه رو اجرا کنید...
برید tab کارمند...
مشخصات کارمند جدید رو پر کنید. دکمه ثبت رو بزنید بعدش یه اروری میده.
چیکار کنم درست شه؟
131289

imanx7
شنبه 26 اردیبهشت 1394, 00:21 صبح
131291
فایل رو ضمیمه کردم

angry-man
شنبه 26 اردیبهشت 1394, 10:27 صبح
131291
فایل رو ضمیمه کردم

سلام ، آدرس دانلود ضمیمه اشتباهه

angry-man
شنبه 26 اردیبهشت 1394, 12:45 عصر
کسی نبود بگه مشکل چیه!؟

ebrahim.rayatparvar
شنبه 26 اردیبهشت 1394, 14:44 عصر
سلام برادر من.
شما در برنامه میان از کلاس Factory یک شی میسازید به این شکل


Factory F; // ساخت کارخانه

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


private void button1_Click(object sender, EventArgs e)
{
if (error) // بررسی تکراری بودن آژانس
{
MessageBox.Show("آژانس قبلا ثبت شده است");
}
else
{
F = new Factory(txtFactoryName.Text, txtFactoryAddrres.Text, txtFactoryPhone.Text, txtFactoryManager.Text);
MessageBox.Show("آژانس اضافه شد");
error = true;
}
txtFactoryName.Clear();
txtFactoryAddrres.Clear();
txtFactoryPhone.Clear();
txtFactoryManager.Clear();

}

در صورتی که برنامه شما اینجا دارید از F استفاده می کنید


private void btWorkerSabt_Click(object sender, EventArgs e)
{

bool bl = F.Checkworker(txtWorkerCode.Text);
if ( bl == true)
{
F.addworker(txtWorkerName.Text, txtWorkerMelicode.Text, txtWorkerPhone.Text, txtWorkerCode.Text,
txtWorkerClock.Text, txtWorkerCodebakhsh.Text);
MessageBox.Show("کارمند با موفقیت ثبت شد");
}
else
MessageBox.Show("کد کارمندی قبلا ثبت شده است");

txtWorkerClock.Clear();
txtWorkerCode.Clear();
txtWorkerCodebakhsh.Clear();
txtWorkerMelicode.Clear();
txtWorkerName.Clear();
txtWorkerPhone.Clear();
}

شما باید جایی عمل new کردن را انجام بدین که در برنامه بشه همه جا استفاده کرد در همان جایی که تعریف میشه یه در Form_Load.
راستی چرا سازنده پیش فرض رو پاک کردی؟؟؟

angry-man
شنبه 26 اردیبهشت 1394, 23:10 عصر
سلام برادر من.
شما در برنامه میان از کلاس Factory یک شی میسازید به این شکل....
شما باید جایی عمل new کردن را انجام بدین که در برنامه بشه همه جا استفاده کرد در همان جایی که تعریف میشه یه در Form_Load.
راستی چرا سازنده پیش فرض رو پاک کردی؟؟؟

ممنون. با راهنمایی شما مشکلم حل شد.
تو کد مشکلی نبود. باید اول که برنامه اجرا میشه تو tab کارخانه ، کارخانه ثبت کنیم که new اجرا بشه و دیگه اون ارورو نده...
من هنوز تو برنامه کارخانه ثبت نکرده بودم داشتم براش کارمند تعیین میکردم خب از اول کارم اشتباه بود اون بنده خدا هم هی ارور می داد!

angry-man
شنبه 26 اردیبهشت 1394, 23:15 عصر
..............

angry-man
یک شنبه 27 اردیبهشت 1394, 14:29 عصر
دوستان یه مشکل...
من میخام الان تو tab جست و جو ، یک کارمند حذف کنم...
مشخصات کارمندان تو list ذخیره شده. چه جوری باید بگم که مثلا مشخصات یک کارمند رو کاملا پاک کنه؟

ebrahim.rayatparvar
یک شنبه 27 اردیبهشت 1394, 15:19 عصر
شما الان چون برامه رو با لیست نوشتید پاک کردنش میشه گفت مثل یک آرایه میشه.
فکر کنید یک آرایه اعداد صحیح دارید میخواهید یک آیتمی را از داخل آرایه پایک کنید چه کاری انجام میدهید.

اول پیدا کردن عدد و بعد پاک کردن که در آرایه ها ما عنصر بعدی را میریختیم داخل عنصر فعلی تا الا آخر و آخری را nullمیکردیم.

روش بهتری هم هست با کمی جستجو به راحتی میتونی پیدا کنی.