PDA

View Full Version : سوال: رفرش شدن gridview



zahra.mf
پنج شنبه 02 شهریور 1391, 15:14 عصر
سلام
من یه gridview دارم که اطلاعات کالا توش درج شده میخوام وقتی مشتری خریدی انجام میده به اندازه اون از کالاها کم بشه ولی تو gridview رفرش نمیشه همون موقع باید یه بار فرم و ببندم و وا کنم تا تغییر کنه میخوام همون موقع که خرید میشه gridview هم رفرش بشه چجور باید این کار و بکنم؟؟

kkkaka
پنج شنبه 02 شهریور 1391, 15:20 عصر
سلام اتفاقآ من همین چند روز پیش به همین مشکل برخوردم
ایا اطلاعات رو از sql میگیرید؟
اگر بله :
شما باید یه متد بنویسی که کارش پر کردن گرید ویوو باشه و بعد هرجا که لازم داشتی صداش کنی.
مثلا تو باتن Refresh.
در کل باید گرید ویوو رو مجدد Fill کنی.

zahra.mf
پنج شنبه 02 شهریور 1391, 15:25 عصر
سلام اتفاقآ من همین چند روز پیش به همین مشکل برخوردم
ایا اطلاعات رو از sql میگیرید؟
اگر بله :
شما باید یه متد بنویسی که کارش پر کردن گرید ویوو باشه و بعد هرجا که لازم داشتی صداش کنی.
مثلا تو باتن Refresh.
در کل باید گرید ویوو رو مجدد Fill کنی.

یه کم بیشتر توضیح میدید!

barnamenevisforme
پنج شنبه 02 شهریور 1391, 15:37 عصر
سلام
بستگی به این داره که شما datagridview رو با چه روشی پر کنید.
اگه اون رو از طریق یه bindingsource به جدول مربوطه مقید کردید باید پس از هر بار تغییر در فیلدهایی که کاربر پر میکنه،متد bindingsource.endedit رو فراخونی کنید.

veniz2008
پنج شنبه 02 شهریور 1391, 15:42 عصر
سلام. اگه گرید رو بار اول در formload با کدنویسی پر میکنی میتونی بعد از کدهای مربوط به اون عمل ( همون کدهایی که مقدار رو کم میکنی) رویداد formload رو بصورت زیر صدا بزنی (من فرمی رو که گرید در اون هست form1 فرض کردم):

Form1_Load(null,null);
موفق باشید.

zahra.mf
پنج شنبه 02 شهریور 1391, 16:05 عصر
من gridview رو با دستور select پر میکنم


dal.connect();
sql = "select kala_ID,namek,gheymatkala,mojudi from kala";
sql = string.Format(sql);
dt = dal.select(sql);
dataGridView3.DataSource = dt;
dal.Disconnect();

ehsan7007
پنج شنبه 02 شهریور 1391, 16:12 عصر
می تونی از این استفاده کنی.



private void show()
{
Con = new SqlConnection() { ConnectionString = @"Data Source=.;Database=DATABASE1.MDF;Integrated Security=True" };
Da = new SqlDataAdapter("SELECT * From Table1", Con);
if (Con.State == ConnectionState.Closed)
{
Con.Open();
}
Ds = new DataSet();
Da.Fill(Ds, "Table1");
dgv.DataSource = Ds;
dgv.DataMember = "Table1";
dgv.Columns[0].HeaderText = "كد";
dgv.Columns[1].HeaderText = "نام";
dgv.Columns[2].HeaderText = "نام خانوادگی";

Con.Close();
}

حالا تو فرم لود و باتن درجت اینو فراخونی کن.

منبع : sirvan_me

veniz2008
پنج شنبه 02 شهریور 1391, 16:22 عصر
من gridview رو با دستور select پر میکنم


dal.connect();
sql = "select kala_ID,namek,gheymatkala,mojudi from kala";
sql = string.Format(sql);
dt = dal.select(sql);
dataGridView3.DataSource = dt;
dal.Disconnect();
خوب این دستور select رو کجا نوشتی؟ توی فرم لود؟ توی باتن؟

tooraj_azizi_1035
پنج شنبه 02 شهریور 1391, 16:37 عصر
باید از SQL Dependency استفاده کنید. با همون عنوان تاپیک سرچ کن.

zahra.mf
پنج شنبه 02 شهریور 1391, 17:07 عصر
خوب این دستور select رو کجا نوشتی؟ توی فرم لود؟ توی باتن؟

توی فرم لود

Farshid007
پنج شنبه 02 شهریور 1391, 17:08 عصر
من gridview رو با دستور select پر میکنم


dal.connect();
sql = "select kala_ID,namek,gheymatkala,mojudi from kala";
sql = string.Format(sql);
dt = dal.select(sql);
dataGridView3.DataSource = dt;
dal.Disconnect();

خوب از همین برای رفرش شدن استفاده کن
اصلا این بزار تو یه void به نام FillDGV
بعد تو لود فرم یا تو هر جایی که احتیاج داری دیتا گرید رو پر کنی این تابع رو فراخوانی کن