PDA

View Full Version : ریفرش کردن GridView در پایگاه داده ی Local



mahdi_armed
چهارشنبه 09 اسفند 1391, 23:18 عصر
سلام
یه DataGridView رو که به یه Local Database وصل شده , با چه دستوری میتونم Refresh کنم ؟.
وقتی DataBaseام SQL Server بود میتونستم این کارو کنم ولی وقتی از Local خود Visual Studio استفاده کردم به مشکل بر خوردم

danialafshari
پنج شنبه 10 اسفند 1391, 02:03 صبح
اگر در Form_load کد fill یا همون Select وجود داره بعد از اتمام کارت کد زیر رو یزار :
Form1_Load(null, null);

mahdi_armed
پنج شنبه 10 اسفند 1391, 11:28 صبح
نه نمیخوام فرم رو دوباره Load کنم
یه سری کارها هست که توی Load شدن فرم انجام میشه مثل تغییر سایز فرم
اگه دوباره Load کنم سایز صحفه عوض میشه . نمیخوام اینجوری شه
راهکار دیگه ای وجود نداره ؟

danialafshari
پنج شنبه 10 اسفند 1391, 11:37 صبح
کد رو درون یک تابع بزار و تابع رو صدا بزن

mahdi_armed
پنج شنبه 10 اسفند 1391, 14:47 عصر
چه فرقی داره با اینکه توی یه دکمه بنویسم ؟
در نهایت فرم دوباره Load میشه و اون تغییراتی که توی FormLoad هست دوباره اجرا میشه
من نمیخوام اونا دویاره اجرا بشن

danialafshari
پنج شنبه 10 اسفند 1391, 14:52 عصر
چه فرقی داره با اینکه توی یه دکمه بنویسم ؟
در نهایت فرم دوباره Load میشه و اون تغییراتی که توی FormLoad هست دوباره اجرا میشه
من نمیخوام اونا دویاره اجرا بشن

نگفتم که کد بالا رو بزار و فرم رو Load کن !
کد select یا همون Fill رو فقط بزار !

mahdi_armed
پنج شنبه 10 اسفند 1391, 20:58 عصر
من یه کمی گیج شدم
حالا من اگه کد Fill یا Select رو بزارم توی تابع و تابع رو صدا بزنم مثل این میمونه که کد رو اجرا کردم فقط کد یه جا دیگه نوشته شده . مگه ایتطور نیست ؟
فکر نمیکنم فرقی کنه

ma.rad
جمعه 11 اسفند 1391, 09:38 صبح
شما باید یه متد بنویسید:

private void showdate()
{
da.Fill(dt );
dataGridView1.DataSource = dt;
}

mahdi_armed
شنبه 12 اسفند 1391, 12:09 عصر
شما باید یه متد بنویسید:

private void showdate()
{
da.Fill(dt );
dataGridView1.DataSource = dt;
}


خب . بعد این متد رو کجا باید استفاده کنم ؟

ma.rad
شنبه 12 اسفند 1391, 12:45 عصر
اگر می خوای تو زمان ها مشخصی مثلا هر 5 ثانیه یک با رفرش بشه از Timer استفاده کن
اما اگر می خواید بعد از عمل درج ویرایش حذف رفرش بشه فقط متد رو صدا بزن:


showdate();

mahdi_armed
یک شنبه 13 اسفند 1391, 11:59 صبح
اگر می خوای تو زمان ها مشخصی مثلا هر 5 ثانیه یک با رفرش بشه از Timer استفاده کن
اما اگر می خواید بعد از عمل درج ویرایش حذف رفرش بشه فقط متد رو صدا بزن:


showdate();

متد showdate وجود نداره که . میخوام بعد از درج یا حذف کردن ریفرش بشه . میشه راهنمایی کنید بگید چجوری باید از این متد استفاده کنم ؟

tooraj_azizi_1035
یک شنبه 13 اسفند 1391, 12:09 عصر
دیتابیس local فقط یک کاربر داره. وقتی همیشه یک کاربر روی بانک تغییرات می ده پس همیشه به روز ترین نسخه از جدول رو می بینه نمی دونم شما چرا می خوای اون رو Refresh کنی.

ma.rad
یک شنبه 13 اسفند 1391, 13:55 عصر
اول باید متد بنویسی :

private void showdate()
{
da.Fill(dt );
dataGridView1.DataSource = dt;
}



بعد فراخوانیش کنی:

showdate();

mahdi_armed
دوشنبه 14 اسفند 1391, 12:36 عصر
اول باید متد بنویسی :

private void showdate()
{
da.Fill(dt );
dataGridView1.DataSource = dt;
}



بعد فراخوانیش کنی:

showdate();


کد برنامه ی من این شکلی شده
ولی وقتی اجرا میکنم کل GridView رو خالی میکنه
مشکلش کجاست ؟

private void button1_Click(object sender, EventArgs e)
{
DabirkhaneDataSet ds = new DabirkhaneDataSet();
DabirkhaneDataSetTableAdapters.UsersTableAdapter dt = new DabirkhaneDataSetTableAdapters.UsersTableAdapter() ;
string s = dt.Insert(textBox1.Text, textBox2.Text, textBox3.Text).ToString();
if (s == "1")
{
MessageBox.Show("Success");
}
else
{
MessageBox.Show("Error");
}
showtime();
}
private void showtime()
{
DabirkhaneDataSet ds = new DabirkhaneDataSet();
DabirkhaneDataSetTableAdapters.UsersTableAdapter dt = new DabirkhaneDataSetTableAdapters.UsersTableAdapter() ;
dt.Fill(ds.Users);
dataGridView1.DataSource = dt;
}

ma.rad
دوشنبه 14 اسفند 1391, 14:19 عصر
دیتاسورس دیتاگرید باید برابر ds باشه نه dt

mahdi_armed
دوشنبه 14 اسفند 1391, 17:25 عصر
دیتاسورس دیتاگرید باید برابر ds باشه نه dt

به جای dt از ds استفاده کردم توی dataresource ولی باز هم همون مشکل وجود داره تمامی GridView رو حذف میکنه

mahdi_armed
دوشنبه 14 اسفند 1391, 17:33 عصر
آقا مشکل حل شد ممنونم دوست خوبم جناب ma.rad باید به جای dt از ds.users استفاده میکردم