PDA

View Full Version : سوال: رفرش datagrid



MINA B
شنبه 25 مرداد 1393, 01:14 صبح
سلام دوستان
خواهش می کنم نگید این تاپیک تکراریه و حذفش نکنید تاپیک های مرتبط رو دیدم اما بازم مشکل دارم
من دو تا فرم دارم یه فرم ثبت ملک و فرم ثبت مالک.توی فرم ثبت ملک یه دیتاگرید دارم که اطلاعات مالک رو میاره یه دکمه هم گذاشتم که فرم مالک رو باز می کنه حالا می خوام اگه مالکی رو ثبت کردم دیتا گرید مربوط به اطلاعات مالک که در فرم ملک هست رفرش بشه .امیدوارم گویا باشه.
فک کردم با یه تابع ساده میشه نوشت اما ظاهرا راه پیچیده تری داره.
خواهش می کنم یه راه کوتاه(چون زمانم محدوده) و ساده(چون مبتدی هستم) بگین که چطوری این مشکل رو حل کنم.خیلی مهمه.ممنون.

mortezasar
شنبه 25 مرداد 1393, 01:25 صبح
سلام اطلاعات رو چه جوری از دیتابیس میخونی دوست عزیز ؟
ابتدایی ترینش اینه که هربار یه مالک ثبت می کنی یه select روی بانکت بزنی

esafb52
شنبه 25 مرداد 1393, 01:31 صبح
وقتی هر هر فرمی رو باز میکنی با یه دونه دایلوگ ریزالت چک کن ببین تغییر رو بانک یا هرچی اعمال کردی و نتایج رو پاس بده به فرم قبلت اگر نتیجه ترو بود که فرمت رو رفرش کن
موفق باشی

MINA B
شنبه 25 مرداد 1393, 01:36 صبح
سلام اطلاعات رو چه جوری از دیتابیس میخونی دوست عزیز ؟
ابتدایی ترینش اینه که هربار یه مالک ثبت می کنی یه select روی بانکت بزنی


db یه شی از کلاس پایگاهمه که تابع malektable داخلش هست که یه سلکت ساده از دیتابیسه.
توی فرم مالک برای رفرش هر بار همین تابع رو فراخوانی می کنم اما می خوام دیتا گرید اطلاعات مالک موجود در فرم ملک هم رفرش شه بعد از زدن دکمه ثبت مالک .یعنی سوال من رفرش دیتا گرید موجود در یک فرم بعد از درج در یک فرم دیگه هست.

MINA B
شنبه 25 مرداد 1393, 01:38 صبح
وقتی هر هر فرمی رو باز میکنی با یه دونه دایلوگ ریزالت چک کن ببین تغییر رو بانک یا هرچی اعمال کردی و نتایج رو پاس بده به فرم قبلت اگر نتیجه ترو بود که فرمت رو رفرش کن
موفق باشی
میشه یه نمونه بزارید؟یا بگید چی سرچ کنم که نمونه ش رو ببینم.ممنون.

aminmousavi
شنبه 25 مرداد 1393, 03:24 صبح
سلام دوست عزیز . در تکمیل حرف مرتضی جان ، یک متد مینویسین که توی بدنه اون از دیتابیس یک select میزنین و خروجی رو میدین به دیتاسورس گریدویو ، در فرم اول هم که دکمه درج و میزنه با یک foreach جستجو میکنید بین فرم های باز ، فرم مورد نظر رو که پیدا کردید متد رفرش رو اجرا میکنن ، یک نمونه هم براتون نوشتم : لینک (http://greendeveloper.ir/files/GD_RefreshForm.zip) (با xml کار میکنه در Form1 که مقداری در فایل xml اضافه کنین در form2 هم نشان داده میشه )

omid nasri
شنبه 25 مرداد 1393, 09:26 صبح
من با دوستان موافق هستم، اما اگر پروژه بزرگ بشه چی؟ ایا هر دفعه نیاز هست دستور Select انجام بشه ، من پیشنهاد می کنم وقتی شما رکوردی رو اضافه می کنید ، نیاید دیتاگرید رو رفرش کنید ، کافی هستش یک رکورد دستی به اون اضافه بشه ، که در این صورت عملیات بانکی کاسته و سرعت و بهینگی راندومان بیشتری به خود می گیره.

MINA B
شنبه 25 مرداد 1393, 10:17 صبح
سلام دوست عزیز . در تکمیل حرف مرتضی جان ، یک متد مینویسین که توی بدنه اون از دیتابیس یک select میزنین و خروجی رو میدین به دیتاسورس گریدویو ، در فرم اول هم که دکمه درج و میزنه با یک foreach جستجو میکنید بین فرم های باز ، فرم مورد نظر رو که پیدا کردید متد رفرش رو اجرا میکنن ، یک نمونه هم براتون نوشتم : لینک (http://greendeveloper.ir/files/GD_RefreshForm.zip) (با xml کار میکنه در Form1 که مقداری در فایل xml اضافه کنین در form2 هم نشان داده میشه )
ممنون.بدون xml نمیشه؟من خودم دیتاگریدم رو با این تابع پر می کنم.

public DataTable Malektable() {

DataTable dt1 = new DataTable();
this.Open();
string sql = "select * from tbl_malek";
cmd.CommandText = sql;
daa.Fill(dt1);
this.Close();
return dt1;
}
برای فرا خوانیش هم

dataGridView1.DataSource = db.Malektable();
هربارم که تو خود فرم بخوام رفرش بشه اینو صدا می کنم.اما از یه فرم به فرم دیگه نمی دونم.
می تونم از همین کد استفاده کنم و یه تابع بنویسم و اون قسمت foreach رو هم بهش اضافه کنم؟

MINA B
شنبه 25 مرداد 1393, 10:32 صبح
دوستان کسی نظر دیگه ای نداره؟:گریه:

khokhan
شنبه 25 مرداد 1393, 11:53 صبح
دوستان کسی نظر دیگه ای نداره؟:گریه:
.............................



Form1 f1 = (Form1)Application.OpenForms["Form1"];
f1.fill();
f1.Show();


............لینک دانلود http://s5.picofile.com/file/8135341634/GOwithwith.rar.html

MINA B
شنبه 25 مرداد 1393, 12:27 عصر
.............................



Form1 f1 = (Form1)Application.OpenForms["Form1"];
f1.fill();
f1.Show();


............لینک دانلود http://s5.picofile.com/file/8135341634/GOwithwith.rar.html
درست شد:لبخند:خیییییییییییییلی خیییییییییییلی ممنون.

alibilgats
شنبه 25 مرداد 1393, 12:43 عصر
خب دوست عزیز این کار که خیلی راحته!
اصلا احتیاجی به xml و اینجور چیزا نیست!

شما اول برو توی قسمت properties پروژت یه setting درست کن به نام Refresh_ از نوع Boolean
بعد توی دکمه ای که توی فرم ملک میزنی تا فرم مالک باز بشه این کدارو بنویس :



Properties.Settings.Default._Refresh = false;

Form2 frm=new Form2();
frm.ShowDialog();
frm.Dispose();

if (Properties.Settings.Default._Refresh == true)
{
فراخوانی متد بازخوانی جدول
}



بعدش برو توی فرم 2 یعنی فرم مالک. توی دکمه ای که عملیات Insert یا Update رو گذاشتی قبل از دستور this.close این کد رو بنویس:


Properties.Settings.Default._Refresh = true;