PDA

View Full Version : سوال: آپدیت کردن فرم مادر



andaron
دوشنبه 11 بهمن 1389, 21:34 عصر
با سلام
راستش یک فرمی دارم که یک دیتا گرید ویو در اون هستش ویک دکمه قرار دادم روش که یک فرم دیگری رو گذاشتم برای کتاب جدید ولی وقتی دکمه ثبت کتاب جدید زده میشه تو خود بانک اطلاعاتی کتاب اضافه میشه ولی تو دیتا گیرد ویو نه و برای همین باید برنامه رو دوباره اجرا کنیم تا اپدیت شه . یعنی می خوام وقتی دکمه ثبت فرم جدید زده می شه فرم مادر آپدیت بشه
با تشکر

payman_xxp
دوشنبه 11 بهمن 1389, 22:38 عصر
سلام
گرید ویو رو باچی پرمیکنی؟
وقتی دکمه ثبت فرم جدید زدی دوباره پرش کن(رفرش)
لطفا جستجو کنید هم بحث شده بسیار و هم نمونه هست.
موفق باشید.

BEHZADnr
دوشنبه 11 بهمن 1389, 22:58 عصر
با سلام

اول باید Dataset را خالی کنی بعد sqlAdapter را آپدیت کنی و سپس Dataset را با sqlAdapter پر کنی
برای اینکه این عملیات همیشه اجرا شود یه تایمر بزار تو فرم اصلی , و کدهای زیر را در آن قرار بده

dataset.Clear();
sqlAdapter.Update(dataset);
sqlAdapter.Fill(dataset.Tablename);یا

dataset.Clear();
sqlAdapter.Update(dataset);
sqlAdapter.Fill(dataset,"Tablename");در آخر هم Enable تایمر رو true کن
بازم اگه مشکلی بود خوشحال میشم کمکتون کنم

archDevil
سه شنبه 12 بهمن 1389, 00:06 صبح
باسلا خدمت شما دوست عزیز


راستش یک فرمی دارم که یک دیتا گرید ویو در اون هستش ویک دکمه قرار دادم روش که یک فرم دیگری رو گذاشتم برای کتاب جدید ولی وقتی دکمه ثبت کتاب جدید زده میشه تو خود بانک اطلاعاتی کتاب اضافه میشه ولی تو دیتا گیرد ویو نه و برای همین باید برنامه رو دوباره اجرا کنیم تا اپدیت شه . یعنی می خوام وقتی دکمه ثبت فرم جدید زده می شه فرم مادر آپدیت بشه
با تشکر
دوست عزیز بعد از اینکه datagrideview رو پرکردی باید اونو رفریش کنی تا داده های جدید جای گزین شن


برای اینکه این عملیات همیشه اجرا شود یه تایمر بزار تو فرم اصلی , و کدهای زیر را در آن قرار بده
دوست عزیز این نمی تونه راه حل خوبی باشه چون اگه حجم داده های بانک اطلاعات بیشتر شه می دونی فقط چقدر زمان صرف خوندن از بانک و پر کردن dataset می شه و یا حتی چقدر صرف متصل شدن و خارج شدن از بانک می شه
موفق باشی

andaron
سه شنبه 12 بهمن 1389, 00:54 صبح
باسلا خدمت شما دوست عزیز

دوست عزیز بعد از اینکه datagrideview رو پرکردی باید اونو رفریش کنی تا داده های جدید جای گزین شن


دوست عزیز این نمی تونه راه حل خوبی باشه چون اگه حجم داده های بانک اطلاعات بیشتر شه می دونی فقط چقدر زمان صرف خوندن از بانک و پر کردن dataset می شه و یا حتی چقدر صرف متصل شدن و خارج شدن از بانک می شه
موفق باشی

با سلام خدمت دوستان
ممنون از همه دوستان بابت راهنمایی هاسون
من آخر نفهمیدم چطور باید رفرش کنم یعنی چطوری

BEHZADnr
سه شنبه 12 بهمن 1389, 03:24 صبح
یه تایمر بزار تو فرم اصلی و کد زیر را در آن قرار بده

dgv.Refresh();

andaron
سه شنبه 12 بهمن 1389, 09:09 صبح
یه تایمر بزار تو فرم اصلی و کد زیر را در آن قرار بده

dgv.Refresh();
ممونون دوست عزیز این چیزی که شما نوشتید کار نمی کنه
یعنی حتی اونو گذاتشتم تو یک باتن که تو هممون فرمی هستش که دیتا گرید ویو هست ولی کار نکرد
-------------------------------------
اما یه کار کردم اومدم تو فرم 1 که همون فرمی هستش که دیتا گرید ویو داخلشه یه متد public ساختم که به صورت زیر :



public void refresh_a()
{
DataTable dt = asly.GetList();
datagreadview.DataSource = dt;

}
واونو تو باتن ثبت کتاب جدید که در فرم ی دیگری است به این صورت صدا زدم

form1 aa=new form1();
aa.refresh_a();

ولی کار نکرد ;
اما وقتی این متد رو تو همون فرم و داخل یک باتن صدا می زنم کار می کنه مشکل کجاست.

andaron
سه شنبه 12 بهمن 1389, 14:32 عصر
سلام دوستان خودم یه راهی پیدا کردم
اینه که در دکمه مثلا ویرایش یا نیو یا دلیت بعد از همه کدها این رو تایپ می کنیم :


frmform_Load(null, null);

andaron
چهارشنبه 13 بهمن 1389, 11:03 صبح
سلام علیکم

دوستان شرمنده روش بالا فرم رو رفرش می کنه ولی یک مشکل داره اونم اینه که وقتی کاربر جدید اضافه می شه اگر بر روی فرم یک کمبو باکس باشه و مقادری در فرم لود به آن اضافه شوند در هر بار لود صفحه اون مقادیر اضفه می شوند
الان برای روفش صفحه چکار کنم

andaron
چهارشنبه 13 بهمن 1389, 13:35 عصر
دوستان کمک کنند خواهشا

man_iran
چهارشنبه 13 بهمن 1389, 15:50 عصر
ایجا منظورت از فرم مادر چیه؟ فرمی که اولین فرم باز می شه؟ یا اینکه فرمی داری که توی مراحل بعدی پروژه باز می شه بعدش از طریق آن فرم دیگه ای باز می کنی یعنی از طریق فرم 2 به فرم 3 می ری. حالا اطلاعات را توی فرم 3 می نویسی می خوای توی فرم 2 هم نمایش داده بشه بدون اینکه فرم 2 را دوباره نیو کنی؟

andaron
چهارشنبه 13 بهمن 1389, 16:42 عصر
بله دقیقا همین طور هستش حالا نمی دونم چکارش کنم یعنی اینکه وقتی کتاب جدید اضافه میشه تا ثبت می زنی دیتا گریدویو اونو نمایش می ده ولی ولی چون از کد پست بالایی که نوشتم برای اینکار استفاده می کنم تو کمبو باکس ها هم همون ایتم های قبلی اضافه میشن یعنی دو برابر میشن به نظرتون چکار کنم

man_iran
چهارشنبه 13 بهمن 1389, 16:56 عصر
یه راه حل ساده که کارت را راه بندازه!:
شما فرض کنید سه تا فرم دارید فرم 1، فرم 2 و فرم 3
فرم 1: فرم اصلی هست و برنامه که لود می شه اول آن اجرا می شه و از طریق آن به فرم 2 می رید.
فرم 2: یه دیتاگریدویو دارید که اطلاعات توش هست
فرم 3: اطلاعات را به دیتاگریدویو و دیتابیس اضافه می کنه

کارایی که باید انجام بدید:
توی فرم 1: شی فرم 2 که توی فرم 1 نمونه سازی کرده اید (نیو فرم دو) را بصورت استاتیک و پابلیک معرفی کنید.
توی فرم 2: دیتاگریدویو موجود را پابلیک کنید.
توی فرم 3: از فرم یک یه شی بسازید (فرم یک را فراخوانی کنید) بعد از طریق شی فرم2 موجود در فرم1، به دیتاگرید اطلاعات ارسال کنید.

به همین سادگی...!!

andaron
چهارشنبه 13 بهمن 1389, 17:06 عصر
دوست عزیز میشه بگید چطوری استاتیک و پابلیک معرفی کنم

توی فرم 1: شی فرم 2 که توی فرم 1 نمونه سازی کرده اید (نیو فرم دو) را بصورت استاتیک و پابلیک معرفی کنید.
یه توضیح کوتاه بدی سریع می فهمم

man_iran
چهارشنبه 13 بهمن 1389, 17:28 عصر
چیزی که گفتم را بصورت یک مثال ضمیمه کردم. امیدوارم بکارت بخوره
65884

andaron
چهارشنبه 13 بهمن 1389, 19:05 عصر
ممنون دوست عزیز خیلی بهره بردم
ولی من منظورم این نبود : بلکه من وقتی دکمه ثبت رو در فرم 3 می زدم اطلاعات در بانک اطلاعاتی ذخیره می شد ولی داخل دیتا ویو نمایش داده نمی شد برای همین باید می رفتم از دوباره فرم 2 را باز کنم تا رفرش شه برای همین اومدم از متد لود فرم 2 استفاده کرم ولی مشکلش این بود که اطلاعات انی وارد می شدند ولی در هرم بار ورود یا ویرایش ایتم های کمبو باکس اضافه می شدند( چون یه کمبو باکس تو فرم 2 بود که حاوی 2 ایتم نام و فامیلی بود ) که هر بار این دو اضافه می شدند
منظورم از اینکه از مثال شما بهره بردم این بود که که متد پابلیک در فرم دو درست کردم که آن متد ارسال اطلاعات به دیتا ویو رو صدا می زد منظور getlist بود
و با همون روش شما در فرم3 اونو صدا زدم و اجرا شد. حالا سوال اینکه آیا چنین روشی مشکلی نداره