PDA

View Full Version : سوال: استفاده از Entity و bindingSource برای درج داده



jafarpalideh
شنبه 18 آذر 1396, 09:33 صبح
با سلام .
من اومدم واسه تست یه جدول Test ساختم با دوتا ستون - ID که کلید اصلیه و اتوماتیک افزایش پیدا میکنه . و Name
مدلم رو ساختم
یه bindingSource انداختم رویه فرم و وصلش کردم به جدول Test
bindingNavigator رو هم وصل کردم به bindingSource
دیتاگریدویوم رو هم وصل کردم به bindingSource
تو bindingNavigator یه دکمه گذاشتم واسه Save و توش این کدها رو نوشتم . ولی تو جدول ذخیره نمیکنه .





private void toolStripButton1_Click(object sender, EventArgs e)
{
StoreDBEntities context = new StoreDBEntities();
context.SaveChanges();
MessageBox.Show("ok");
}

jafarpalideh
شنبه 18 آذر 1396, 09:35 صبح
اون پیغام OK رو هم نشون میده . ولی چیزی ذخیره نمیشه . البته یادم رفت بگم که یه دکمه هم گذاشتم و Text اون رو Bind کردم به bindingSource

parvizwpf
شنبه 18 آذر 1396, 10:34 صبح
تریس کنید ببینید اصلا چیزی به کانتکست اد شده؟ روی کانکست گزینه EntityChange یا چیزی شبیه اینرو بررسی کنید ببینید تغییرات چی هست

jafarpalideh
شنبه 18 آذر 1396, 11:12 صبح
تریس کنید ببینید اصلا چیزی به کانتکست اد شده؟ روی کانکست گزینه EntityChange یا چیزی شبیه اینرو بررسی کنید ببینید تغییرات چی هست



همچین چیزی ندیدم !!!!!!

147228

jafarpalideh
شنبه 18 آذر 1396, 11:15 صبح
اینم یه عکس دیگه از تریس برنامه و context



147229

jafarpalideh
یک شنبه 19 آذر 1396, 08:13 صبح
دوستان کسی به این مشکل بر نخورده ؟
یا نمیتونه راهنمایی کنه ؟

parvizwpf
یک شنبه 19 آذر 1396, 08:14 صبح
ببینید شما نمیتونید با بایند کردن داده به تنهایی دیتا در دیتابیس ذخیره کنید برای اینکار باید آبجکت جدید ساخته بشه و به کانتکست داده بشه سپس ذخیره کنید. در واقع باید به جدول کانتکست مورد نظرتون اد کنید و بعد سیو رو فراخوانی کنید.

jafarpalideh
یک شنبه 19 آذر 1396, 08:20 صبح
میشه محبت کنید و بگید چطور از طریق بایند کردن میتونم اینکار رو بکنم ؟
بنده طبق آموزش آقای محسن جمشیدی عزیز پیش رفتم .
ویدئوهاشون هست تو تالار

jafarpalideh
یک شنبه 19 آذر 1396, 08:22 صبح
اینم لینک آموزش
http://barnamenevis.org/showthread.php?313523

parvizwpf
یک شنبه 19 آذر 1396, 08:29 صبح
من کار ایشون رو ندیدم اما طبق خود مطلب مایکروسافت پیش برید:
https://msdn.microsoft.com/en-us/library/jj682076(v=vs.113).aspx

jafarpalideh
یک شنبه 19 آذر 1396, 09:07 صبح
من کار ایشون رو ندیدم اما طبق خود مطلب مایکروسافت پیش برید:
https://msdn.microsoft.com/en-us/library/jj682076(v=vs.113).aspx


حقیقتش مایکروسافت خیلی پیچیده گفته و کلی .
کسی سمپل نداره .

parvizwpf
یک شنبه 19 آذر 1396, 09:36 صبح
من الان که سرچ میکنم و قبلا هم تجربه دارم همون حرفی که بالا زدم رو باز مجدد میگم . حتی الان مایکروسافت هم که لینک دادم برای سه عمل اصلی در خود دیتا گرید مطلب گذاشته . شما وقتی بخواهید ذخیره کنید می بایست آبجکتی به کانتکست اد بشه تا بعنوان insert اون رو بپذیره بعد خودش با عمل save اون رو ذخیره خواهد کرد . حالا در کار شما هیچ جا این عمل اتفاق نیافتاده. حتی با وجود بایندینگ هم اینکار باید انجام بشه.
باید این کد یه جایی در کد شما باشه:
context.tblTest.Add(آبجکت جدید)

jafarpalideh
یک شنبه 19 آذر 1396, 10:23 صبح
من الان که سرچ میکنم و قبلا هم تجربه دارم همون حرفی که بالا زدم رو باز مجدد میگم . حتی الان مایکروسافت هم که لینک دادم برای سه عمل اصلی در خود دیتا گرید مطلب گذاشته . شما وقتی بخواهید ذخیره کنید می بایست آبجکتی به کانتکست اد بشه تا بعنوان insert اون رو بپذیره بعد خودش با عمل save اون رو ذخیره خواهد کرد . حالا در کار شما هیچ جا این عمل اتفاق نیافتاده. حتی با وجود بایندینگ هم اینکار باید انجام بشه.
باید این کد یه جایی در کد شما باشه:
context.tblTest.Add(آبجکت جدید)


حرفتون کاملا صحیح بود . سپاس . کد رو میزارم . البته با یه دیتابیس تستی دیگه .







private void toolStripButton1_Click(object sender, EventArgs e)
{
tbltest tblts = new EntetyTest.tbltest();
tblts.Esm = textBox1.Text;
ts.tbltest.Add(tblts);
ts.SaveChanges();
MessageBox.Show("ok");
bindingSource1.DataSource = ts.tbltest.ToList();
}