PDA

View Full Version : علت خطای SaveChanges در فرم دوم



mohamad_torabi
شنبه 24 اسفند 1392, 23:05 عصر
سلام میشه به من بگید این کد که مشکلی داره؟

m.Test.Add(new Test
{
NAME = textBox6.Text,
FAMILY = textBox7.Text,
Lesson = textBox5.Text,
Section = textBox4.Text,
MODIR = textBox3.Text,
YEAR = textBox2.Text,
NAME_SCHOOL = textBox1.Text,
pic = textBox8.Text
});
m.SaveChanges();

ایمان مدائنی
یک شنبه 25 اسفند 1392, 09:05 صبح
متن خطا رو بزارید تا بتونیم کمکتون کنیم

mohamad_torabi
یک شنبه 25 اسفند 1392, 13:26 عصر
متن خطا رو بزارید تا بتونیم کمکتون کنیم

این خطا در زمان اجرا و بعد از زدن دکمه ثبت رخ میده
متن خطا:
An unhandled exception of type 'System.Data.Entity.Infrastructure.DbUpdateExcepti on' occurred in EntityFramework.dll

Additional information: An error occurred while updating the entries. See the inner exception for details.

r4hgozar
دوشنبه 26 اسفند 1392, 09:28 صبح
سلام اقا محمد. نمودونم من رو تو تالار طراحی وب یادتون هست یا نه؟!!


اما من اینجا2 تا نکته به نظرم میرسته. یک اینکه شما table رو دستکاری کردی و entity رو آپدیت نکردی.
2 دستور entity تون یکم به نظرم من عجیبه . اخه من خودم entity می نویسم اما اینجوری :



m.Test.Add(
NAME = textBox6.Text,
FAMILY = textBox7.Text,
Lesson = textBox5.Text,
Section = textBox4.Text,
MODIR = textBox3.Text,
YEAR = textBox2.Text,
NAME_SCHOOL = textBox1.Text,
pic = textBox8.Text
);
m.SaveChanges();

mohamad_torabi
چهارشنبه 28 اسفند 1392, 23:45 عصر
سلام اقا محمد. نمودونم من رو تو تالار طراحی وب یادتون هست یا نه؟!!


اما من اینجا2 تا نکته به نظرم میرسته. یک اینکه شما table رو دستکاری کردی و entity رو آپدیت نکردی.
2 دستور entity تون یکم به نظرم من عجیبه . اخه من خودم entity می نویسم اما اینجوری :



m.Test.Add(
NAME = textBox6.Text,
FAMILY = textBox7.Text,
Lesson = textBox5.Text,
Section = textBox4.Text,
MODIR = textBox3.Text,
YEAR = textBox2.Text,
NAME_SCHOOL = textBox1.Text,
pic = textBox8.Text
);
m.SaveChanges();

سلام خیلی ممنون میشه بگید چطور میشه جدول رو اپدیت کرد؟

aghayex
پنج شنبه 29 اسفند 1392, 11:26 صبح
نگاه کنید دوست عزیز شما برای آپدیت یا حذف یک رکورد ابتدا باید اون رکورد رو در قالب یک entity فراخوانی کنید بعد به راحتی می تونید پروپرتی های اون entity رو ویرایش کنید و در نهایت دستور SaveChanges() رو فراخوانی کنید .

Mojtaba.Shateri
پنج شنبه 29 اسفند 1392, 15:26 عصر
سلام خیلی ممنون میشه بگید چطور میشه جدول رو اپدیت کرد؟

به نظر میاد این خطا برا اینه که رکورد در جدول Test وجود داره.!!!
چند راه برا Update وجود داره .
اول :
try
{

var _test = db.Test.FirstOrDefault(x=>x.NAME=="ali");
if (_test != null)
{
_test.NAME = textBox6.Text,
_test.FAMILY = textBox7.Text,
_test.Lesson = textBox5.Text,
_test.Section = textBox4.Text,
_test.MODIR = textBox3.Text,
_test.YEAR = textBox2.Text,
_test.NAME_SCHOOL = textBox1.Text,
_test.pic = textBox8.Text
db.Test.Attach(_test);
db.Entry(_test).State = EntityState.Modified;
db.SaveChanges();
}
}
catch (Exception exception)
{
Console.WriteLine(exception.Message);
}
دوم :

try
{

var _test = db.Test.FirstOrDefault(x=>x.NAME=="ali");
if (_test != null)
{
_test.NAME = textBox6.Text,
_test.FAMILY = textBox7.Text,
_test.Lesson = textBox5.Text,
_test.Section = textBox4.Text,
_test.MODIR = textBox3.Text,
_test.YEAR = textBox2.Text,
_test.NAME_SCHOOL = textBox1.Text,
_test.pic = textBox8.Text
db.Entry(_test).CurrentValues.SetValues(_test);
db.SaveChanges();
}
}
catch (Exception exception)
{
Console.WriteLine(exception.Message);
}

ضمنا برا جدولات فیلد IDentity بزار.
فرضا من خواستم فردی که نامش "ali" هست را ویرایش کنم.