مشاهده نسخه کامل
: update a row of DataGrid
با سلام
من در فرم اول یه دونه گرید ویو دارم وقتی روش کلیک میکنم به فرم دوم میره ؛ حالا اونجا با توجه به شرایط عمل آپدیت حذف و یا اینسرت انجام میشه و اطلاعات گرید به روز میشه
<code>//dataGridView ra por mikonad
dataGridView.DataSource = book.GetFilledDataSource();
</code>
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در کد بالا تمام جدول رو در دیتا گرید لود میکنه
حالا سوال من اینه که چه جوری میشه بعد از عمل مثلا آپدیت در پایگاه داده تنها سطر مورد نظر در گرید آپدیت شود
در ضمن من نمیخوام ازBindingSource ی که در تولبار هست استفاده کنم (یا بهتر بگم نمیخوانم از اشیایی که روی فرم دستورات پایگاه داده رو مینویسند استفاده کنم) و میخوام به صورت مستقیم تنها رکوردی که در پایگاه داده تغییر میکنه مستقیم در گرید تغییر بدم
vs 2008 , Windows Application
H A M A S
08-09-2011, 12:02
من خیلی دنبال این جواب این سوال بودم اما توی لینک! ب
شما بعد از عمل درج یا حذف یکبار بر اساس یه فیلد مشخص -جدول رو مرتب کن ببین داده ها توی گرید نمایش داده میشن؟
من خیلی دنبال این جواب این سوال بودم اما توی لینک! ب
شما بعد از عمل درج یا حذف یکبار بر اساس یه فیلد مشخص -جدول رو مرتب کن ببین داده ها توی گرید نمایش داده میشن؟
با سلام
مرتب کردن داده های جدول مستلزم اینه که من یه select روی جدول بزنم تازه بعد از اون هم باید یه دیتا تیبل بسازم تا بتونم دیتاسورس دیتا گرید رو ست کنم و من نمی خوام این اتفاق بیفته
اگه تعداد رکوردها زیاد باشه سرعت خیلی پایین میاد
میخوام فقط رکورد تغییر یافته رو بازیابی کنم و تو دیتا گرید نشون بدم
با سلام
مرتب کردن داده های جدول مستلزم اینه که من یه select روی جدول بزنم تازه بعد از اون هم باید یه دیتا تیبل بسازم تا بتونم دیتاسورس دیتا گرید رو ست کنم و من نمی خوام این اتفاق بیفته
اگه تعداد رکوردها زیاد باشه سرعت خیلی پایین میاد
میخوام فقط رکورد تغییر یافته رو بازیابی کنم و تو دیتا گرید نشون بدم
سلام میتونین از این روش استفاده کنین.
اول یه تابع و یا حتی یک lable ساده روی فرمی که دیتا گرید داره بزارین و اسمش رو به update تغییر بدین.و کدهایی که برای بروز رسانی جدول هست توی این تابع یا lable بزارین.درواقع با کلیک یا فراخوانی اون با یک کد ساده میتونین دیتا گرید رو بروزرسانی کنین.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیددر ادامه برای فراخوانی این تابع آپدیت از یه فرم دیگه این کار رو میکنین که موقع کلیک یا دابل کلیک بر روی دیتا گرید و نمایش اطلاعات یک رکورد خاص این کد ها رو هم بهش اضاه میکنین.تو اینجا form2 همون فرم تغییرات هستش.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدبعد توی فرم تغییرات این کدها رو اضافه میکنین :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدکد بالا رو تو بالاترین قسمت بهتره درج کنین.
بعد توی دکمه یا رویداد ثبت تغییرات این کد رو وارد کنین :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سلام میتونین از این روش استفاده کنین.
اول یه تابع و یا حتی یک lable ساده روی فرمی که دیتا گرید داره بزارین و اسمش رو به update تغییر بدین.و کدهایی که برای بروز رسانی جدول هست توی این تابع یا lable بزارین.درواقع با کلیک یا فراخوانی اون با یک کد ساده میتونین دیتا گرید رو بروزرسانی کنین.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیددر ادامه برای فراخوانی این تابع آپدیت از یه فرم دیگه این کار رو میکنین که موقع کلیک یا دابل کلیک بر روی دیتا گرید و نمایش اطلاعات یک رکورد خاص این کد ها رو هم بهش اضاه میکنین.تو اینجا form2 همون فرم تغییرات هستش.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدبعد توی فرم تغییرات این کدها رو اضافه میکنین :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدکد بالا رو تو بالاترین قسمت بهتره درج کنین.
بعد توی دکمه یا رویداد ثبت تغییرات این کد رو وارد کنین :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
با سلام
کدتون رو کامل متوجه نشدم :11:
ولی از ظاهرش برمیاد که دو تا فرم مرتب دارن به کنترل های هم دسترسی پیدا می کنن و این با شی گرایی تناقض داره
با سلام
کدتون رو کامل متوجه نشدم :11:
ولی از ظاهرش برمیاد که دو تا فرم مرتب دارن به کنترل های هم دسترسی پیدا می کنن و این با شی گرایی تناقض داره
نه با مفاهیم شی گرایی تضادی نداره.تنها توی فرم 1 شما تابع یا رویداد lable1_click رو بصورت public تعریف میکنین تا بشه بهش دسترسی پیدا کرد.
برای اینکه این کار مشکل ساز نباشه بهتر با یک اسم خاص اون رو درست کنین ولی اینجا ما اسمش رو همون label1 که پیش فرض هست گذاشیم.
من یه مثال براتون درست کردم که توی فرم 1 ابتدا جدول با مقادیری پر هست.وقتی فرم دو رو نمایش میده.یعنی فرمی که میخایین تغییرات رو توی اون بوجود بیارین با کلیک روی بروزرسانی یا ثبت تغییرات رویداد lable1_click توی فرم 1 اجرا میشه و باعث میشه جدول شما بروز رسانی بشه.(مقادیر جدیدی که تعریف شدن جدول رو پرش می کنن).
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
نه با مفاهیم شی گرایی تضادی نداره.تنها توی فرم 1 شما تابع یا رویداد lable1_click رو بصورت public تعریف میکنین تا بشه بهش دسترسی پیدا کرد.
برای اینکه این کار مشکل ساز نباشه بهتر با یک اسم خاص اون رو درست کنین ولی اینجا ما اسمش رو همون label1 که پیش فرض هست گذاشیم.
من یه مثال براتون درست کردم که توی فرم 1 ابتدا جدول با مقادیری پر هست.وقتی فرم دو رو نمایش میده.یعنی فرمی که میخایین تغییرات رو توی اون بوجود بیارین با کلیک روی بروزرسانی یا ثبت تغییرات رویداد lable1_click توی فرم 1 اجرا میشه و باعث میشه جدول شما بروز رسانی بشه.(مقادیر جدیدی که تعریف شدن جدول رو پرش می کنن).
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
با سلام
بابت مثالی که گذاشته بودید تشکر میکنم.
متاسفانه منظور من رو متوجه نشده بودید لطفا یه بار دیگه صورت مساله در تاپیک 1 رو با دققت بخونید.
میخوام بدونم وقتی یه سطر تو جدول تغییر میکنه چطور همون یه سطر رو در دیتاگرید تغییر بدم
بدون BindingSource
با تشکر:11:
با سلام
بابت مثالی که گذاشته بودید تشکر میکنم.
متاسفانه منظور من رو متوجه نشده بودید لطفا یه بار دیگه صورت مساله در تاپیک 1 رو با دققت بخونید.
میخوام بدونم وقتی یه سطر تو جدول تغییر میکنه چطور همون یه سطر رو در دیتاگرید تغییر بدم
بدون BindingSource
با تشکر:11:
سلام
همون مثال قبلی یکم تغییر داده شد و فکر کنم همونی باشه که شما میخایین.
البته تو این روش از متغییر استاتیک سراسری استفاده میکنیم و جدول رو آپدیتش میکنیم.یعنی اصلا با دیتا بیس کاری نداریم.
در واقع بعد از انجام تغییرات توی دیتا بیس ما برای بروز رسانی داده های جدول از همین متغییر های سراسری استفاده میکنیم که سرعت اجراش هم واقعا زیاده و لازم نیست کل جدول بروزرسانی بشه.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.