PDA

View Full Version : حرفه ای: اشکال در ذخیره اطلاعات در EF



davidrobert
جمعه 12 دی 1393, 15:38 عصر
سلام و خسته نباشید.
من کد ذخیره کردن اطلاعات رو نوشتم که وقتی بار اول اطلاعات رو ذخیره میکنم اطلاعات ذخیره میشه ولی بار دوم میزنم برای ذخیره خطا میده. و این خطا هستش.
An error occurred while updating the entries. See the inner exception for details.
و کد های من درست هستم و اطلاعات کد نحوه پرداخت کلید هستش و این اطلاعات 2 جا ذخیره میشه اطلاعات کد نحوه پرداخت درست ذخیره میشه ولی اطلاعات نحوه پرداخت خطا داده میشه که در جدوال کد نحوه پرداخت کد درست وارد میشه و در جدوال نحوه پرداخت در موقع db.savechanged(); برماه خطا میده.
این هم کد من.
void SaveNahvePerdakhtCode()
{
try
{
Tbl_Code_Nehve_PerdaKht tcnp = new Tbl_Code_Nehve_PerdaKht();
tcnp.CNP_Code_Nahve_Prdakht = Convert.ToInt64(LblCodeNahvePerdakht.Text);
db.Tbl_Code_Nehve_PerdaKht.Add(tcnp);
db.SaveChanges();
}
catch (Exception ex)
{
ClsShowMessageBoxError.Error(102, "208 " + ex.Message, "");
}

}


void SaveNahvePerdakht()
{
try
{

Tbl_Nahve_Perdakht tnp = new Tbl_Nahve_Perdakht();
tnp.NP_CNP_Code_Nahve_Prdakht = Convert.ToInt64(LblCodeNahvePerdakht.Text);
tnp.NP_Code_Bank = Convert.ToInt64(TxtCodeBank.Text);
tnp.NP_Date_Perdakht = TxtClender.Value.FarsiSelectedDate;
tnp.NP_Date_Sabt = LblDate.Text;
tnp.NP_Mablegh_NeghdeVarez = Convert.ToDecimal(TxtMablaghPerdakhte.Text);
tnp.NP_MablghMande = Convert.ToDecimal(TxtMonde.Text);
tnp.NP_Modet_Perdakht = TxtModetTasve.Text;
tnp.NP_Noye_Perdakht = TxtNoyePerDakht.Text;
tnp.NP_Shomare_Varez = TxtShomareVarez.Text;
tnp.NP_Time = LblTime.Text;
tnp.NP_Vezeyat_Perdakht = TxtZamanTesve.Text;
db.Tbl_Nahve_Perdakht.Add(tnp);
db.SaveChanges();




//tnp.NP_CNP_Code_Nahve_Prdakht = Convert.ToInt64(LblCodeNahvePerdakht.Text);
//tnp.NP_Date_Perdakht = TxtClender.Value.FarsiSelectedDate.Trim();
//tnp.NP_Date_Sabt = LblDate.Text.Trim();
//tnp.NP_Mablegh_NeghdeVarez = Convert.ToDecimal(TxtMablaghPerdakhte.Text);
//tnp.NP_MablghMande = Convert.ToDecimal(TxtMonde.Text);
//tnp.NP_Modet_Perdakht = TxtModetTasve.Text;
//tnp.NP_Code_Bank = Convert.ToInt64(TxtCodeBank.Text);
//tnp.NP_Noye_Perdakht = (TxtNoyePerDakht.Text);
//tnp.NP_Shomare_Varez = TxtShomareVarez.Text;
//tnp.NP_Time = LblTime.Text;
//tnp.NP_Vezeyat_Perdakht = TxtZamanTesve.Text;
//db.Tbl_Nahve_Perdakht.Add(tnp);
//db.SaveChanges();
}
catch (Exception ex)
{
ClsShowMessageBoxError.Error(102, "209 " + ex.Message, "");
}
}
خواهش کمک کنید گیرم بار اول اطلاعات ذخیره میشه و بار ها دیگه تو ذخیره گیر میده و اطلاعات رو ذخیره نمیکنه.

samadblaj
جمعه 12 دی 1393, 16:43 عصر
سلام این خطا به خاطر اینه که شما فیلد رو کلید اصلی قرار دادید و اون روی شماره اتوماتیک قرار ندادید برای باز اول براتون کلید درست میکنه در مرحله دوم با خطا مواجه میشید.
همیشه سعی کنید برای ترمیم و رفع خطای پایگاه تمامی جداولتون رو در حالت Show Table data ببینید داده وارد کنید راندومان کار رو مشاهده کنید بعد اقدام به ذخره اطلاعات در بانک کنید.
ضمنا در صفحه خطا میتونید جزئیات خطا رو با دقت بیشتر ببیند و اصلاح کنید.