PDA

View Full Version : دسترسی به دیتا سورس datagridview از فرمی دیگر؟



mojzkh
سه شنبه 01 مرداد 1392, 00:45 صبح
من میخوام دیتا گریدمو آپدیت کنم اما از طریف فرمی دیگه که به صورت مودال واشده و فرم پشتی که دیتا گرید رو داره با کلیک از فرم مودال دیتا گرید فرم پشتی آپدیت شهاطلاعاتش . این کارو تونستم انجام بدم با ایجاد فرمی از نوع فرم یک بعد از کلیک که یه فرم دیگه باز می کنه که آپدیت شده اما نمیشه که 2 تا فرم یجور داشت .
من میخوام یه راحلی باشه تا به راحتی بتونم اعمال تغیراتو از فرم دیگه انجام بدم . لطف می کنین کمک می کنید .:عصبانی++:

mojzkh
سه شنبه 01 مرداد 1392, 02:34 صبح
خوب دوستان جواب رو خودم پیدا کردم :تشویق:
کد فرم اول که گرید داره :
این کدها که شامل تعریف تابع هست رو به انتهای کدهای فرم 1 اضافه کنید
---------------------------
public static SqlConnection getc()
{
string sqlstr = "Data Source=(local)\\SQLEXPRESS;Initial Catalog=اسم دی بی;Integrated Security=True";
SqlConnection conn = new SqlConnection(sqlstr);
return conn;
}
//====
private DataTable GetData()
{
DataTable dt = new DataTable();
using (SqlConnection conn = getc())
{
SqlCommand cmd = new SqlCommand("SELECT * FROM اسم جدول الصاقی به گرید", conn);
conn.Open();
SqlDataAdapter ad = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
ad.Fill(ds);
dt = ds.Tables[0];
return dt;
}

}

//====
void fm_RefreshDgv()
{

using (SqlConnection conn = getc())
{
dataGridView1.DataSource = GetData();

}}


-----------
برای نمایش دادن فرم دوم به هر طریقی از کد زیر استفاده میکنیم مثلا در رویداد دکمه ای که فرم دوم را می اورد

Form2 fm = new Form2();
fm.RefreshDgv += new Form2.DoEvent(fm_RefreshDgv);
fm.ShowDialog();


-----------------------------------------------اینم کدی که تو فرم 2 میزاریم

public partial class Form2 : Form
{
public delegate void DoEvent();//جهت استفاده برای رفرش دیتا گرید
public event DoEvent RefreshDgv;//جهت استفاده برای رفرش دیتا گرید

. دو خط بالا باید اضافه شود
.
.
.
.
this.RefreshDgv(); این خط را در رویداد دکمه ای که قرار است اطلاعات ثبت شود درج میکنیم تا تابع فراخوانی و دیتا گرید در بک گراند آپدیت شود.



عملا روی این وراثتو کلاسو آبجک ارینتد رو کم کردم . 3.10 صبحه
در بن چاهی همی بودم نگون - در دو عالم هم نمی گنجم کنون