PDA

View Full Version : ارور Operation is not valid due to the current state of the object.



negar.rafie
یک شنبه 31 مرداد 1395, 11:32 صبح
سلام
دوستان در تاپیک مربوط به BindingSource تقریبا به جواب رسیدم ولی وقتی با entity framework و BindingSource کار میکنم و میخوام رکورد اضافه کنم
اگر بار اول جدول خالی باشه ارور زیر را میده
operation is not valid due to the current state of the objec
مشکل از کجاست؟

negar.rafie
یک شنبه 31 مرداد 1395, 13:58 عصر
کدهای من

form1:

dbTestEntities db = new dbTestEntities();

BindingSource bs = new BindingSource();

private void form1_Load(object sender, EventArgs e)
{
db.tbl1.Load();
bs.DataSource = db.tbl1.Local.ToBindingList();
dgrid.DataSource = bs;
}

-----------------
form2:
public form2(dbTestEntities dbEntities)
{
InitializeComponent();
db = dbEntities;
}

dbTestEntities db = new dbTestEntities();

private void b_Save_Click(object sender, EventArgs e)
{
tbl1 t = new tbl1
{
code = txtcode.Text,
Name = txtName.Text,
isKarmand = true
};
db.tbl1.Add(t);
db.SaveChanges();
}

hamid_hr
یک شنبه 31 مرداد 1395, 14:05 عصر
کدوم خط خطا میده؟

mr.sirwan
یک شنبه 31 مرداد 1395, 14:11 عصر
میشه بپرسم به چه دلیل داخل سازنده فرم2 یک ابجکت DatabaseContext از فرمی دیگه به عنوان پارامتر فراخوانی کردین و برابر با ابجکت جاری فرم2 قرار دادین؟ و باز هم چرا ابجکت جاری رو new کردین؟؟؟

پارامتر رو از سازنده فرم2 حذف کنین و داخل فرم 2 همین یک ابجکت رو new کنین و بررسی کنین که ارور رفع شده یا نه، به این شکل:

dbTestEntities db =null;
public form2()
{
InitializeComponent();
db = new dbTestEntities();
}

negar.rafie
یک شنبه 31 مرداد 1395, 14:15 عصر
کدوم خط خطا میده؟

این خط
db.tbl1.Add(t);

negar.rafie
یک شنبه 31 مرداد 1395, 14:15 عصر
میشه بپرسم به چه دلیل داخل سازنده فرم2 یک ابجکت DatabaseContext از فرمی دیگه به عنوان پارامتر فراخوانی کردین و برابر با ابجکت جاری فرم2 قرار دادین؟ و باز هم چرا ابجکت جاری رو new کردین؟؟؟

}[/CSHARP]
خب به روش جناب محمود عمل کردم

negar.rafie
یک شنبه 31 مرداد 1395, 14:19 عصر
پارامتر رو از سازنده فرم2 حذف کنین و داخل فرم 2 همین یک ابجکت رو new کنین و بررسی کنین که ارور رفع شده یا نه، به این شکل:

dbTestEntities db =null;
public form2()
{
InitializeComponent();
db = new dbTestEntities();
}

خب با این کار دیگه گرید در فرم 1 بروز رسانی نمیشه

mr.sirwan
یک شنبه 31 مرداد 1395, 14:22 عصر
خب به روش جناب محمود عمل کردم

همین الان پروژه ایشون رو باز کردم، ایشون همچین کاری نکردن، شما اشتباه متوجه شدین، ایشونم دقیقا همین کاری که من گفتم رو انجام دادن تو نمونه کدی که فرستادن

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

negar.rafie
یک شنبه 31 مرداد 1395, 14:24 عصر
ن منظورم این پسته:

http://barnamenevis.org/showthread.php?528718-%D8%A7%D8%B6%D8%A7%D9%81%D9%87-%DA%A9%D8%B1%D8%AF%D9%86-%D8%B3%D8%B7%D8%B1-%D8%A8%D9%87-%D8%B5%D9%88%D8%B1%D8%AA-%D8%AF%D8%B3%D8%AA%DB%8C-%D8%A8%D9%87-BindingSource-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%A8%D8%B1%D9%88%D8%B2%D8%B1%D8%B3%D8%A7%D9%86%D B%8C-datagridview&p=2336423&viewfull=1#post2336423

mr.sirwan
یک شنبه 31 مرداد 1395, 14:44 عصر
ن منظورم این پسته:

http://barnamenevis.org/showthread.php?528718-%D8%A7%D8%B6%D8%A7%D9%81%D9%87-%DA%A9%D8%B1%D8%AF%D9%86-%D8%B3%D8%B7%D8%B1-%D8%A8%D9%87-%D8%B5%D9%88%D8%B1%D8%AA-%D8%AF%D8%B3%D8%AA%DB%8C-%D8%A8%D9%87-BindingSource-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%A8%D8%B1%D9%88%D8%B2%D8%B1%D8%B3%D8%A7%D9%86%D B%8C-datagridview&p=2336423&viewfull=1#post2336423

شما کد منو امتحان کنین ببینین برای اضافه کردن رکورد ارور میده، نتیجه رو اعلام کنین، بعدا مباحث سرچ و ویرایش رو بررسی خواهیم کرد

negar.rafie
یک شنبه 31 مرداد 1395, 14:49 عصر
ببینید این کد من فقط زمانی که جدول خالیه ارور میده و بعد از اینکه رکورد اضافه بشه در دفعات بعدی مشکلی نیست

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

negar.rafie
یک شنبه 31 مرداد 1395, 16:21 عصر
مثل اینکه کسی داخل این سایت بلد نیست
بیخیال
راستی چطوری باید در سایت stackoverflow تاپیک ایجاد کرد ؟
اونجا در عرض چند دقیقه به جواب میرسیم
میشه طریقه ایجاد تاپیک در این سایت را بگید تا برم اونجا بپرسم؟

negar.rafie
یک شنبه 31 مرداد 1395, 21:02 عصر
ترو خدا کمک کنید
این ارور برای چیه
اعصابم خورد شد
شیطونه میگه بزنم کامپیوتر را خورد کنم

operation is not valid due to the current state of the objec

negar.rafie
دوشنبه 01 شهریور 1395, 00:12 صبح
دوستان حل شد
.
.
.
.
اصلا وقتی بگم مشکل کجا بود باورتون نمیشه
مشکل از خود گرید بود
یعنی حذف کردم و یه گرید دیگه گذاشتم حل شد
نمیدونم اصلا چ ربطی داشت
یعنی جناب محمد اشتیانی و محمود افراد گفتند سورس را بذارم یا یک پروژه جدید ایجاد کنم بفرستم
منم ی پروژه جدید با یک پایگاه داده دیگه ایجاد کردم شد
بعد از پایگاه داده پروژه اصلی داخل پروژه تست استفاده کردم شد
بعد بازم بیشتر متعجب و عصبانی شدم
بعد ی فکری به ذهنم رسید که همین کنترل های پروژه اصلی را کپی کنم در پروژه تست که دیدم همون ارور را داد
اخر فهمیدم مشکل از گرید بود

از همه شما دوستان ممنونم