در یک پروژه سی شارپ WPF با دیتابیس SQL Server و Entity Framwork
میخواهیم زمانی که اطلاعات درج حذف یا بروزرسانی شد دیتا گرید رو بروز کنیم و اطلاعات رو ببینیم
دوتا مشکل وجود داره :
1- باید یک کویری SELECT یا ItemSource مجددا بزنیم و داخل دیتا گرید بریزیم که اطلاعات بروز باشه , که اگر اطلاعات زیاد باشه کند عمل میکنه
var query = dbms.Database.SqlQuery<MYTABLE>("SELECT CODE,NAME,TEL FROM MYTABLE").ToList();
DataGrid1.ItemSource = query ;
/////یا
DataGrid1.ItemSource = null;
DataGrid1.ItemSource = dbms.MYTABLE.ToList();
2- فرض کنید بین 10 هزار رکورد توی دیتا گرید که لیست شده میخوایم ردیف شماره 756 , اطلاعاتش رو اصلاح (UPDATE) کنیم و بعد از اون بخوایم دیتاگرید بروز(در نمایش اطلاعات) بشه , باید مجددا اطلاعات رو
از دیتابیس بگیریم و بریزیم داخل دیتا گرید , که اون ردیفی که در حال اصلاح کردنش بودیم جابه جا میشه (چون از اول لود میشه ردیفش رو گم میکنیم و دوباره باید پیداش کنیم).
چیز هایی مثل MyDataGrid.Refresh() هم کار نمیکنه
چکاری میتونیم انجام بدیم که اطلاعات رو در داخل دیتاگرید بعد از عملیات (INSERT ,UPDATE,DELETE)با سرعت بالا بروز کنیم (نمایشش در دیتا گرید )
بدون اینکه ردیفی که روش فوکوس کرده بودیم جابه جا بشه (یا در Reload اون رکوردی که روش بودیم بهم نخوره
لطفا راهنمایی بفرمایید.
باتشکر
شما نمیتونید اطلاعات رو داخل DataGridView ذخیره کنید و برای رفرش اطلاعات باید حتما یک بار مجدد اطلاعات رو از دیتابیس فراخوانی کنید. ولی معمولا نیازی نیست شما همه اطلاعات رو از دیتابیس واکشی کنید.
مطمئنا اگر شما 10 هزار یا 100 هزار رکورد داخل دیتابیس خودتون داشته باشید واکشی و نمایش این حجم از اطلاعات قدری باعث کند شدن برنامه شما میشه.
من خودم معمولا بیشتر از 1000 تا رکورد رو واکشی نمیکنم. و اگر کاربر نیاز به اطلاعاتی داشت میتونه با استفاده از قابلیت جستجو که قرار میدم اطلاعات مورد نیازش رو پیدا کنه.
تاریخ :
1403/09/06
- ساعت :
09:51:00 PM
- بازدید :
87
- پاسخ :
1
|
تاریخ :
1401/02/24
- ساعت :
02:17:00 PM
- بازدید :
2037
- پاسخ :
1
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1067
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1172
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
617
- پاسخ :
1
|
تاریخ :
1403/07/13
- ساعت :
12:06:00 PM
- بازدید :
373
- پاسخ :
1
|
تاریخ :
1403/06/24
- ساعت :
08:52:00 PM
- بازدید :
335
- پاسخ :
1
|
تاریخ :
1398/09/14
- ساعت :
01:58:00 PM
- بازدید :
4294
- پاسخ :
1
|
تاریخ :
1398/09/16
- ساعت :
11:41:00 AM
- بازدید :
4299
- پاسخ :
1
|
تاریخ :
1398/09/07
- ساعت :
02:15:00 PM
- بازدید :
3898
- پاسخ :
5
|
تاریخ :
1403/09/06
- ساعت :
09:51:00 PM
- بازدید :
87
- پاسخ :
1
|
تاریخ :
1400/07/17
- ساعت :
10:39:00 PM
- بازدید :
2335
- پاسخ :
0
|
تاریخ :
1403/09/05
- ساعت :
06:32:00 PM
- بازدید :
70
- پاسخ :
1
|
تاریخ :
1401/02/24
- ساعت :
02:17:00 PM
- بازدید :
2037
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
117
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
149
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1067
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
474
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
948
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1378
- پاسخ :
1
|