PDA

View Full Version : امکان ایجاد تغییرات در gridview بعد از بایند کردن به دیتابیس



samiasoft
شنبه 02 آذر 1398, 02:36 صبح
سلام وقت بخیر

بدین صورت اطلاعاتی را از دیتابیس در دیتاگرید لود کردم :

using (databaseEntities database = new databaseEntities()) {
var records = (from rows in database.cat_WebSites
select new
{
rows.cat_ID,


rows.catName,
}).ToList();


grd_WebSites_category.DataSource = records;
}

حالا میخواستم حالت AllowUserToAddRows=true و readOnly=false کنم اما متاسفانه هرکار کردم نشد.درواقع میخواستم امکان ایجاد ردیف جدید و همچنین تغییر در متن ستون های موردنظر رو به کاربر بدم و اخرکار با دستور database.SaveChanges(); کل تغییراتی که در دیتاگرید روی اطلاعات انجام شده بود را ذخیره کنم.

با جستجویی که کردم چون دیتابیس به دیتاگرید بایند شده برای همین باید کار دیگری رو انجام بدیم.

در این لینک توضیحاتی ارائه شده اما متاسفانه متوجه نشدم....ممنون میشوم راهنمایی کنید.

How I can enable to insert rows in DataGridView after bind? (https://social.msdn.microsoft.com/Forums/windows/en-US/4c209813-0293-4ef7-ad4b-2eb03b3d331c/how-i-can-enable-to-insert-rows-in-datagridview-after-bind?forum=winforms)

samiasoft
شنبه 02 آذر 1398, 22:37 عصر
اومدم بدین صورت دستورات رو نوشتم و به هدفم رسیدم :لبخندساده:

databaseEntities database = new databaseEntities();
BindingSource bs = new BindingSource();

database.cat_WebSites.Load();

bs.DataSource = database.cat_WebSites.Local.ToBindingList();


grd_WebSites_category.DataSource = bs;

grd_WebSites_category.EndEdit(); bs.EndEdit();
database.SaveChanges();

samiasoft
سه شنبه 05 آذر 1398, 03:56 صبح
یک مشکل دیگری که نتونستم حلش کنم این هستش که در این دستور که در پست دوم نوشتم :

bs.DataSource = database.cat_WebSites.Local.ToBindingList();

چگونه میتوانم جدول دیگری رو هم به این بایند لیست اضافه کنم؟

درواقع 2 تا جدول دارم cat_websites و websites که یک به یک باهم درارتباطند...الان در این بایند لیست همانطور که مشاهده میکنید جدول cat_websites اضافه شده..حال چطوری به همین لیست بیاییم جدول websites هم اضافه کنیم؟!

Mahmoud.Afrad
شنبه 09 آذر 1398, 23:14 عصر
یک مشکل دیگری که نتونستم حلش کنم این هستش که در این دستور که در پست دوم نوشتم :

bs.DataSource = database.cat_WebSites.Local.ToBindingList();

چگونه میتوانم جدول دیگری رو هم به این بایند لیست اضافه کنم؟

درواقع 2 تا جدول دارم cat_websites و websites که یک به یک باهم درارتباطند...الان در این بایند لیست همانطور که مشاهده میکنید جدول cat_websites اضافه شده..حال چطوری به همین لیست بیاییم جدول websites هم اضافه کنیم؟!

هر دو را در یک گریدویو میخواهید نمایش بدید؟

samiasoft
یک شنبه 10 آذر 1398, 11:42 صبح
هر دو را در یک گریدویو میخواهید نمایش بدید؟

بله همین کارو میخواستم انجام بدم

اگر اشتباه نکنم باید اینجا از متد join استفاده کنم درسته ؟
برای مثال اومدم اینطور نوشتم اما دراین حالت از Local ایراد میگیره:
http://s6.picofile.com/file/8380582018/vewv.jpg

Mahmoud.Afrad
پنج شنبه 14 آذر 1398, 04:44 صبح
خب بیخیال local . یک ویومدل ایجاد کنید و در سلکت ازش استفاده کنید.

samiasoft
یک شنبه 17 آذر 1398, 01:26 صبح
خب بیخیال local . یک ویومدل ایجاد کنید و در سلکت ازش استفاده کنید.

بصورت دیتابیس فرست این کارهارو انجام داده بودم...الان نحوه ایجاد ویو مدل رو متوجه نشدم...درصورت امکان یک مثال دراین باره قرار بدید ممنون خواهم شد

Mahmoud.Afrad
یک شنبه 17 آذر 1398, 20:09 عصر
بصورت دیتابیس فرست این کارهارو انجام داده بودم...الان نحوه ایجاد ویو مدل رو متوجه نشدم...درصورت امکان یک مثال دراین باره قرار بدید ممنون خواهم شد

منظور یک کلاس با تمام فیلدهای مورد نیاز هست.

samiasoft
دوشنبه 18 آذر 1398, 01:22 صبح
منظور یک کلاس با تمام فیلدهای مورد نیاز هست.

متشکرم حل شد