PDA

View Full Version : سوال: خطای invalidoperationException



Yazdan.j77
پنج شنبه 17 خرداد 1397, 13:26 عصر
سلام دوستان خسته نباشید یه برنامه نوشتم میخوام یه سطر جدید به دیتا بیس اضافه کنم این خطارو میده
An unhandeled exception of type `system.invalidoperationException ´ occurred in presentation frame work.dll
Additional information: cannot animate ´(0).(1)[1]·(2)´ on an immutable object instance.

اینم.کدیه که توی ویندوز لود و دکمه نوشتم


private void Window_Loaded(object sender, RoutedEventArgs e)
{
PersonAccountingdbEntities db = new PersonAccountingdbEntities();

cmb_group.ItemsSource = db.tbl_GroupDaryaft.ToList();
cmb_group.DisplayMemberPath = "name";

cmb_varizbe.ItemsSource = db.tbl_Hesab.ToList();
cmb_varizbe.DisplayMemberPath = "bank";

cmb_shakhs.ItemsSource = db.tbl_Ashkhas.ToList();
cmb_shakhs.DisplayMemberPath = "name";

MainWindow main = new MainWindow();
txtdate.Text = main.Persiancalender.SelectedDate.ToString();
}

private void button_Click(object sender, RoutedEventArgs e)
{
//بدون استفاده از Storedprocedures
PersonAccountingdbEntities db = new PersonAccountingdbEntities();

tbl_Pardakht pardakht = new tbl_Pardakht
{
mablagh = int.Parse(txtmablagh.Text),
group = cmb_group.Text,
hesab = cmb_varizbe.Text,
shakhs = cmb_shakhs.Text,
date=txtdate.Text,
description=txtdescription.Text,
};

db.tbl_Pardakht.Add(pardakht);
db.SaveChanges();

MessageBox.Show("اطلاعات ثبت گردید");
}

nunegandom
پنج شنبه 17 خرداد 1397, 16:22 عصر
سلام
ایه رو یک نگاهی بندازید (https://stackoverflow.com/questions/29302319/cannot-animate-0-1-on-an-immutable-object-instance)
ظاهرا مال قسمت رنگ و دیزاینتونه که قاطی میکنه!:لبخند:

ژیار رحیمی
پنج شنبه 17 خرداد 1397, 16:36 عصر
سلام
دوست گرامی شما ComoBox ها رو به جداول مربوط بایند کردی یعنی در جدول pardakht یک ارتباط یک به چند بین گروها برقرار هست .نمیشه خاصیت text کامبوباکس را به جای آبجکت آن مقدار دهی نمایی.خطا در کدهای زیر رخ میدهید

group = cmb_group.Text,
hesab = cmb_varizbe.Text,
shakhs = cmb_shakhs.Text,


در کل باید برای گروهایی که به ComboBox ها انتساب دادی خاصیت SelectedValuePath را برابر Id جدول گروه مورد نظر ست کنی سپس Object تک تک گروههای انتخاب شده از طریق کامبوباکس ها را با کویری در داخل context لود کنی و به آبجکت pardakht انتساب دهی.

اصلاحیه



private void Window_Loaded(object sender, RoutedEventArgs e)
{
PersonAccountingdbEntities db = new PersonAccountingdbEntities();

cmb_group.ItemsSource = db.tbl_GroupDaryaft.ToList();
cmb_group.DisplayMemberPath = "name";
///ای دی جدول tbl_GroupDaryaft
cmb_group.SelectedValuePath = "Id";

cmb_varizbe.ItemsSource = db.tbl_Hesab.ToList();
cmb_varizbe.DisplayMemberPath = "bank";
///ای دی جدول tbl_Hesab
cmb_varizbe.SelectedValuePath = "Id";

cmb_shakhs.ItemsSource = db.tbl_Ashkhas.ToList();
cmb_shakhs.DisplayMemberPath = "name";
///ای دی جدول tbl_Ashkhas
cmb_shakhs.SelectedValuePath = "Id";

MainWindow main = new MainWindow();
txtdate.Text = main.Persiancalender.SelectedDate.ToString();
}

private void button_Click(object sender, RoutedEventArgs e)
{
//بدون استفاده از Storedprocedures
PersonAccountingdbEntities db = new PersonAccountingdbEntities();

tbl_Pardakht pardakht = new tbl_Pardakht
{
mablagh = int.Parse(txtmablagh.Text),
//group = cmb_group.Text,
group =db.tbl_GroupDaryaft.Find(cmb_group.SelectedValue) ,
//hesab = cmb_varizbe.Text,
hesab=db.tbl_Hesab.Find(cmb_varizbe.SelectedValue) ,
//shakhs = cmb_shakhs.Text,
shakhs =db.tbl_Ashkhas.Find(cmb_shakhs.SelectedValue),
date=txtdate.Text,
description=txtdescription.Text,
};

db.tbl_Pardakht.Add(pardakht);
db.SaveChanges();

MessageBox.Show("اطلاعات ثبت گردید");
}

Yazdan.j77
جمعه 18 خرداد 1397, 19:10 عصر
سلام دوست عزیز من کد شمارو وارد کردم اما بازهم میگیره و خطاشم اینه نمیتونه کد شمارو به نوع. String تبدیل کنه
Cannot implicity convert type 'personaccounting.tbl_groupdaryaft' to 'string'
تورو خدا کنید مال پروژه پایانیمه