• 1397/04/24

مشکل در حذف رکورد در data gride view :

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

  • 1397/04/24
  • ساعت 15:53

کد رو قرار بدید


  • 1397/04/24
  • ساعت 16:31

(If(dgcostomer.currentRow!=null 

}

(()Using(unitOfwork db=new unitofwork

 

Int costomerid=int.parse(dgcostomer.currentRow.cells[0].value.tostring

 

Db.customerRipozitory.Delletcostomer

(Costomerid)

()Db.save.

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


  • 1397/04/24
  • ساعت 16:37

لطفا از طریق کلیدکد ادیتور قرار بدید تا بتونیم کد رو بخونیم 


  • 1397/04/24
  • ساعت 20:27
 private void btndelletcostomer_Click(object sender, EventArgs e)
        {

            if (dgcostomer.CurrentRow != null)
            {

                using (unitOfwork db = new unitOfwork())
                {
                    string name = dgcostomer.CurrentRow.Cells[1].Value.ToString();
                    if (MessageBox.Show($"ایا از حذف {name}مطمعن هستید", "توجه", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
                    {
                        int costomerid = int.Parse(dgcostomer.CurrentRow.Cells[0].Value.ToString());
                        db.costomerRipozitory.Delletcostomer(costomerid);
                        db.save();
                        bindgride();
                      
                    }
                }
            }
            else
            {
                MessageBox.Show("لطفا شخص مورد نظر را انتخاب کنید");
            }

 


  • 1397/04/24
  • ساعت 22:31

کد متد save رو بررسی کنید ببینید کامل کردید

در این کد ها مشکلی وجود نداره

بعد customerid رو بررسی کنید درست باشه


  • 1397/04/24
  • ساعت 23:20
namespace DATALAYER.CONTEX
{
    public class unitOfwork : IDisposable
    {
        MYHESABEntities db = new MYHESABEntities();

        private IcustomerRipozitory _costomerRipozitory;

        public IcustomerRipozitory costomerRipozitory {
            get {
                if (_costomerRipozitory == null)
                {
                    _costomerRipozitory = new costomerRipozitory();
                    
                }
                return _costomerRipozitory;
            }
        }
        public void save()
        {
            db.SaveChanges();
        }
        public void Dispose()
        {
            db.Dispose();
        }
    }
}
اینم کد save.طبق اموزشهای خودتون در unitofwork گذاشتم

 


  • 1397/04/24
  • ساعت 23:25

این مشکل در وارد کردن اطلاعت در دیتابیس هم وجود داره.نمیتونم از فرم تو دیتابیس چیزی وارد کنم.فقط میتونم فعلا رفرش کنم صفحه رو و همچنین اطلاعت رو در دیتا گرید ویو ببینم.نمیدونم مشکل کجاست.الان 10بار ویدیو مربوط به deletرو دیدم ولی نمیشه.


  • 1397/04/25
  • ساعت 07:58

الان من دقیق متوجه نشدم

ثبت میشه ولی لیست رفرش نمیشه ؟

یا کلا در بانک ثبت نمیشه ؟


  • 1397/04/25
  • ساعت 09:30

کلا ففط تنها ارتباط من با بانک اطلاعاتی اینه که اطلاعت بانک رو روی دیتا گرید ویو میبینم.ولی من نمیتونم روی اطلاعت تغیراتی از جمله حذف و یا اطلاعات جدید وارد کنم.جالبتر اینکه من حتی نمیتونم از کامپوننت های validatorهم استفاده کنم.دقیقا مثل شما انجام دادم.ولی هنگام runکردن برنامه ازش خبری نمیشه.ربطی به ورژنd.netکه نداره.


  • 1397/04/25
  • ساعت 09:31

costomerRipozitory چرا ورودی Context نداره ؟ 


  • 1397/04/25
  • ساعت 09:39

استاد متوجه نشدم.منظورتون درunitofworkهستش.؟


  • 1397/04/25
  • ساعت 09:52

استاد فهمیدم.ورودی نداشت.تشکر که روی مشکل من وقت گذاشتید.چند روز بود وقتمو گرفته بود.صدبار خط به خط مرور کردم.نمیدونم چطوری متوجه نشدم.انشالله تو کاراتون موفق باشید.


logo-samandehi