PDA

View Full Version : عدم refresh دیتاگرید



Yanehsar
پنج شنبه 10 بهمن 1392, 22:15 عصر
سلام من با استفاده از Linq عملیات روی بانکم انجام میدم و بدون مشکل انجام میشه اما می خوام فرم آپدید کنم انجام نمیشه هم جدول رو مجددا فراخوانی کردم نشد هم رویداد فرم لود رو فراخوانی کردم چیکار کنم به نظرتون ؟


dgv.DataSource = db.TSazmans;
یا
FrmSazman_Load(sender, e);
یا
FrmSazman_Load(Null, Null);

amirreza_.net
جمعه 11 بهمن 1392, 00:33 صبح
توی رویدادی که عملیات رو روی بانک انجام میده بنویسید
کدتون رو اینجا بزارین

drsina
جمعه 11 بهمن 1392, 00:38 صبح
سعی کن هیچ وقت Event ها رو فراخوانی نکنی .
اگه همشو توو یه متد بنویسی بهتره /.

Yanehsar
جمعه 11 بهمن 1392, 12:24 عصر
توی رویدادی که عملیات رو روی بانک انجام میده بنویسید
کدتون رو اینجا بزارین



try
{
db.sp_Doctors_Insert(Convert.ToInt32(txtnezam.Text ), txtfamily.Text, cbTakhasos.Text,Convert.ToInt32(CbNameTakhasos.Sel ectedValue), cbGroupDrs.Text);
db.SubmitChanges();
DGV.DataSource = db.ViewsDoctorsTakhasos;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

یا


try
{
db.SP_Sazman_Insert(txtNameSazman.Text, Convert.ToInt32(txtFeranshiz.Text), txtNameExport.Text);
db.SubmitChanges();
FrmSazman_Load(null, null);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

Mahmoud.Afrad
جمعه 11 بهمن 1392, 14:11 عصر
میتونی tolist استفاده کنی:

db.sp_Doctors_Insert(Convert.ToInt32(txtnezam.Text ), txtfamily.Text, cbTakhasos.Text,Convert.ToInt32(CbNameTakhasos.Sel ectedValue), cbGroupDrs.Text);
db.SubmitChanges();
DGV.DataSource = db.ViewsDoctorsTakhasos.ToList();


و یا از بایندینگ سورس استفاده کنی و از طریق اون عمل درج رو انجام بدی:

DataClasses1DataContext db;
BindingSource bs;

public Form1()
{
InitializeComponent();

db = new DataClasses1DataContext();
bs = new BindingSource();
bs.DataSource = db.tbl2s;
dataGridView1.DataSource = bs;
}
private void button2_Click(object sender, EventArgs e)
{
tbl2 t = new tbl2 { name = "aaa" };
bs.Add(t);
db.SubmitChanges();
}

Yanehsar
جمعه 11 بهمن 1392, 18:44 عصر
میتونی tolist استفاده کنی:

db.sp_Doctors_Insert(Convert.ToInt32(txtnezam.Text ), txtfamily.Text, cbTakhasos.Text,Convert.ToInt32(CbNameTakhasos.Sel ectedValue), cbGroupDrs.Text);
db.SubmitChanges();
DGV.DataSource = db.ViewsDoctorsTakhasos.ToList();


و یا از بایندینگ سورس استفاده کنی و از طریق اون عمل درج رو انجام بدی:

DataClasses1DataContext db;
BindingSource bs;

public Form1()
{
InitializeComponent();

db = new DataClasses1DataContext();
bs = new BindingSource();
bs.DataSource = db.tbl2s;
dataGridView1.DataSource = bs;
}
private void button2_Click(object sender, EventArgs e)
{
tbl2 t = new tbl2 { name = "aaa" };
bs.Add(t);
db.SubmitChanges();
}



مرسی از رهنمائی شما با استفاده از BindingSource مشکلم برطرف شده سوالی که دارم داخل insert کردن از Stored Procedures استفاده نشد پس نیازی به نوشتن آن نیست ؟ برای حذف و ویرایش چطور ؟

Mahmoud.Afrad
جمعه 11 بهمن 1392, 19:35 عصر
مرسی از رهنمائی شما با استفاده از BindingSource مشکلم برطرف شده سوالی که دارم داخل insert کردن از Stored Procedures استفاده نشد پس نیازی به نوشتن آن نیست ؟ برای حذف و ویرایش چطور ؟
نیاز چندانی به استورپروسیجر نیست چون متدهای مخصوص این اعمال در دسترس هستند. برای کارهایی مثل گرفتن و بازگردانی بکاپ میتونی از استورپروسیجر استفاده گنی.

Yanehsar
شنبه 12 بهمن 1392, 22:25 عصر
با تشکر از شما آیا نمونه های از نحوه استفاده از binding source دارید ؟چون اولین باره دارم از روشLINQ و binding source که شما عرض فرمودید استفاده می کنم با مشکل مواجعه هستم .تونستم از سایت msdn کلاس binding source رو پیدا کنم اما مثلی از بانک اطلاعاتی نتونستم پیدا کنم .

Yanehsar
دوشنبه 14 بهمن 1392, 18:18 عصر
سلام
ممنون میشم برای حذف و ویرایش هم مثالی برام بزنید ...:قلب:

Mahmoud.Afrad
پنج شنبه 17 بهمن 1392, 15:49 عصر
میتونی از همون binding source استفاده کنی و متدهاشو نگاه کنی.
مثلا برای حذف سطر جاری در گریدویو:

bs.RemoveCurrent();
db.SubmitChanges();

Yanehsar
پنج شنبه 17 بهمن 1392, 18:20 عصر
میتونی از همون binding source استفاده کنی و متدهاشو نگاه کنی.
مثلا برای حذف سطر جاری در گریدویو:

bs.RemoveCurrent();
db.SubmitChanges();

با تشکر بله بیشتر برای حذفش مشکل دارم

Mahmoud.Afrad
پنج شنبه 17 بهمن 1392, 21:17 عصر
باید مشخص کنی عمل حذف چه جوری قراره انجام بشه. اگر با سلکت یک سطر و بعد پاک کردن هست که کدشو قرار دادم.

Yanehsar
دوشنبه 21 بهمن 1392, 10:22 صبح
باید مشخص کنی عمل حذف چه جوری قراره انجام بشه. اگر با سلکت یک سطر و بعد پاک کردن هست که کدشو قرار دادم.
با عرض پوش برای ویرایش مشکل دارم چون نمی دونم کجا باید شرط رو قرار بدم و کجا باید مقدار قبلی را وارد کنم /باتشکر

Mahmoud.Afrad
دوشنبه 21 بهمن 1392, 11:16 صبح
میتونی از طریق بایندینگ سورس انجام بدی. در این حالت بسادگی اطلاعات رو به تکست باکس ها و ... بایند میکنی. با انتخاب از دیتاگرید ، اطلاعات اون سطر به تکست باکس خواهد اومد و میتونی تغییر بدی و در آخر تغییرات رو ذخیره کنی.

DataClasses1DataContext db;
BindingSource bs;

public Form1()
{
InitializeComponent();

db = new DataClasses1DataContext();
bs = new BindingSource();
bs.DataSource = db.tbl2s;
dataGridView1.DataSource = bs;
textBox1.DataBindings.Add("Text", bs, "name" , true , DataSourceUpdateMode.OnPropertyChanged);
textBox2.DataBindings.Add("Text", bs, "family", true, DataSourceUpdateMode.OnPropertyChanged);
}

با تغییر متن تکست باکس متن سلول دیتاگرید هم تغییر میکنه.
دکمه ذخیره تغییرات کد زیر:

private void button2_Click(object sender, EventArgs e)
{
db.SubmitChanges();
}

یک دکمه هم برای کنسل کردن و عدم ثبت تغییرات(یا اینکه از کاربر میپرسی و اگر مایل نبود ثبت نمیکنی). کافیه دیتاسورس رو ریست کنی:

private void button3_Click(object sender, EventArgs e)
{
db = new DataClasses1DataContext();
bs.DataSource = db.tbl2s;
}