PDA

View Full Version : سوال در مورد فراخوانی متدLoad فرم



resident
شنبه 13 بهمن 1386, 19:19 عصر
سلام.
من بعد از اضافه کردن اطلاعات یک فرم به دیتابیس متد Load رو فراخوانی می کنم تا اطلاعات گریدویو refresh بشه. گاهی اوقات بعد از فراخوانی این متد فقط اون رکوردی که تازه وارد دیتابیس شده به دیتاگرید اضافه میشه ، اما گاهی اوقات با هر بار فراخوانی این متد یکبار دیگه رکوردهای دیتابیس در دیتاگریدویو نمایش داده میشه. چرا اینطوریه؟
ممنون.

Mahdi.Kiani
شنبه 13 بهمن 1386, 19:47 عصر
سلام.
من بعد از اضافه کردن اطلاعات یک فرم به دیتابیس متد Load رو فراخوانی می کنم تا اطلاعات گریدویو refresh بشه. گاهی اوقات بعد از فراخوانی این متد فقط اون رکوردی که تازه وارد دیتابیس شده به دیتاگرید اضافه میشه ، اما گاهی اوقات با هر بار فراخوانی این متد یکبار دیگه رکوردهای دیتابیس در دیتاگریدویو نمایش داده میشه. چرا اینطوریه؟
ممنون.

قبل از fill کردن مجدد Datasource اونو clear کنین
در ضمن بهتره عملیات کار با دیتابیس (Fetch کردن داده ها، modify کردن داده ها و .. ) را ببرین توی لایه دیتا ، و هر زمان که خواستین از اون بگیرین. فراخوانی دستی رویداد load فرم درست نیست.

یا حداقل اگر از معماری سه لایه استفاده نمی کنین، fetch کردن داده ها را درون یک متد ، فرضا GetData قرار بدین و هر موقع لازم شد اونو فراخوانی کنید

مثال




public DataTable GetData()
{

DataTable dt =new DataTable();
// TODO : Code For Obtain Data And Fill DataTbale

return dt;
}








DataGridView1.DataSiurce =null;

// Now Get New Data
DataGridView1.DataSource=GetData();




البته الگوریتم وار نوشتم که فقط نشون بدم که چیکار باید بکنی
موفق باشید