تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 2 12 آخرآخر
نمايش نتايج 1 به 10 از 14

نام تاپيک: سوال:چگونه یک DataGridView را Refresh کنم؟

  1. #1
    پروفشنال azorbet's Avatar
    تاريخ عضويت
    Apr 2006
    پست ها
    536

    پيش فرض سوال:چگونه یک DataGridView را Refresh کنم؟

    با سلام.
    من یه datagridview دارم که وصله به یک پایگاه اکسس.یک Button هم دارم که با کلیک بر روی آن،ردیف انتخاب شده هم توی دیتاگرید Delete میشه و هم توی پایگاه داده.بعد از پاک شدن فیلدی به نام indx از صفر تا n مقدار دهی میشه(n تعداد رکوردها ست).حالا میخوام دیتا گرید رو refresh کنم تا بتون مقادیر جدید indx رو ببینم.باید چی کار کنم؟

  2. #2
    آخر فروم باز Bracket's Avatar
    تاريخ عضويت
    Apr 2008
    پست ها
    1,064

    پيش فرض

    از متد Refresh استفاده کنید .
    Last edited by Bracket; 24-04-2008 at 00:27.

  3. #3
    پروفشنال azorbet's Avatar
    تاريخ عضويت
    Apr 2006
    پست ها
    536

    پيش فرض

    از متد Refresh استفاده کنید .
    نمیشه.
    اینم کد:

    Dim i As Integer
    If m_rec1.RecordCount > 0 Then
    m_rec1.MoveFirst()
    For i = 0 To DataGridView1.RowCount()
    m_rec1.Fields!indx.Value = i
    m_rec1.MoveNext()
    Next
    End If
    Tbl1BindingSource.ResetBindings(False)
    Me.Tbl1TableAdapter.Fill(Me.Db1DataSet.tbl1)
    DataGridView1.Refresh()
    Last edited by azorbet; 24-04-2008 at 00:39.

  4. #4
    پروفشنال azorbet's Avatar
    تاريخ عضويت
    Apr 2006
    پست ها
    536

    پيش فرض

    به خدا خیلی گیر این مساله هستم.لطفا کمک کنید!!!

  5. #5
    آخر فروم باز shalineh's Avatar
    تاريخ عضويت
    Mar 2007
    محل سكونت
    فعلا ایران
    پست ها
    1,033

    پيش فرض

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    دوست عزیز، چند نکته رو میخوام یاد آوری کنم. کدی که شما نوشته اید، از نظر منطق برنامه نویسی ایرادی نداره. اما همین که فقط (تاکید میکنم فقط) بخاطر حذف یه رکورد از دیتابیس و دیتاگرید ، دوباره داری دیتاست رو Fill میکنی ، ایده خوبی نیست.
    این کار در حجم وسیع رکوردها نه تنها برنامه رو بلکه کل سیستم رو میتونه فلج کنه. شما دیتاگرید رو به یک DataView بایند کرده ای. خب وقتی میای یک رکورد رو از دیتاگرید حذف میکنی، همین رکورد رو از دیتابیس هم حذف میکنی، دیگه Fill کردن به چه منظوری است؟
    نحوه فیــــلترینگ رکوردها مگه تغییر کرده است؟ با حذف اطلاعات از DataView هیچ نیازی به Filling مجدد دیتاست نیست. چون هر تغییری در DataView ، باعث آپدیت اتوماتیک دیتاست خواهد شد. ( بجز F i l t e r i n g).
    شما براحتی میتونی با حذف یک Row از دیتاگرید، ایندکس رکورد فعلی رو که فوکوس روی آن است رو بدست بیاری و روال رو ادامه بدی.
    در خود MSDN هم به این نکته اشاره شد است که عملیات Fill بسیار وقت گیر است و چنین فرض شده است که در طول اجرای برنامه فقط یکبار فراخوانی میشود. یا حداقل در مواقعی که نیاز به فیــــلترینگ مجدد دیتابیس ( نه DataView ) میباشد.

    امیدوارم تونسته باشم راهنماییت کرده باشم.
    برای مثال عرض میکنم، در برنامه ای که برای اورژانس یکی از شهر ها نوشته بودیم با حجم میلیونی از رکوردها مواجه بودیم و اگه میخواستیم با حذف یک ردیف دوباره Fill رو فراخوانی کنیم، فاتحه برنامه خونده شده بود. دقیقا همین ایده ای رو که گفتم اونجا پیاده سازی کردیم.
    اگه متوجه نشدی، سعی میکنم تا فردا یک مثال عملی واست بنویسم.

  6. #6
    پروفشنال azorbet's Avatar
    تاريخ عضويت
    Apr 2006
    پست ها
    536

    پيش فرض

    خیلی ممنون از راهنماییت ولی بازم نگرفتم چی شد.بذار پای تازه کار بودنم.سوالم رو جور دیگه ای مطرح می کنم. من یه دیتاگرید متصل به یه پایگاه داده دارم و میخوام کاری کنم که هر وقت کاربر روی دکمه "حذف" کلیک کرد، row جاری هم از دیتاگرید حذف بشه و هم از پایگاه داده.درضمن قابلیت Sorting هم فعاله.مشکل من هم، همین Sort هست. چون اگه نبود، DataGridView1.CurrentRow.Index مشکل من رو حل میکرد.ولی با فعال بودن Sort مجبورم فیلدی برا ذخیره کردن ایندکس بسازم(شاید این کارم اشتباه باشه)
    Last edited by azorbet; 25-04-2008 at 11:05.

  7. #7
    آخر فروم باز shalineh's Avatar
    تاريخ عضويت
    Mar 2007
    محل سكونت
    فعلا ایران
    پست ها
    1,033

    پيش فرض

    ولی با فعال بودن Sort مجبورم فیلدی برا ذخیره کردن ایندکس بسازم(شاید این کارم اشتباه باشه)
    اگه Sort رو در همون DataView انجام بدی، مشکلت حل میشه. یعنی نتایج رو بصورت Sort شده در دیتاگرید نمایش بده.

  8. #8
    پروفشنال azorbet's Avatar
    تاريخ عضويت
    Apr 2006
    پست ها
    536

    پيش فرض

    اگه Sort رو در همون DataView انجام بدی، مشکلت حل میشه. یعنی نتایج رو بصورت Sort شده در دیتاگرید نمایش بده.
    وای که من چقدر خنگم
    با عرض پوزش بازم نفهمیدم!!!
    من میخوام کاربر بتونه در هر لحظه عملیات سورت رو داشته باشه.یه سوال ، منظورت از DataView همون DataGridView هست؟
    Last edited by azorbet; 25-04-2008 at 11:54.

  9. #9
    آخر فروم باز shalineh's Avatar
    تاريخ عضويت
    Mar 2007
    محل سكونت
    فعلا ایران
    پست ها
    1,033

    پيش فرض

    منظورت از DataView همون DataGridView هست؟

    یعنی بعد از عمری برنامه نویسی ، هنوز فرق بین این دوتا رو نمیدونم؟

    دوست عزیز، شما خودت میگی که دیتاگرید رو به یک دیتاویو بایند کرده ای. درسته؟ خب وقتی یک ردیف رو از دیتاگرید حذف میکنی این ردیف بصورت خودبخود از دیتاویو هم حذف میشود. وقتی SortOrder دیتاگرید رو تعییر میدی، SortOrder دیتا ویو هم همزمان تعییر میکند. خب، حالا مشکلت چیه من نمیدونم.
    جوابت اینه: وقتی ردیفی رو از دیتاگرید حذف کردی، ایندکس رکورد جاری برابر است با ایندکس ردیف انتخاب شده فعلی دیتاگرید( بعد از حذف یک ردیف ) با همان SortOrder و با همان کیفیت
    دیگه ساده تر از این موندم که چجوری بگم.

  10. #10
    پروفشنال azorbet's Avatar
    تاريخ عضويت
    Apr 2006
    پست ها
    536

    پيش فرض

    یعنی بعد از عمری برنامه نویسی ، هنوز فرق بین این دوتا رو نمیدونم؟

    دوست عزیز، شما خودت میگی که دیتاگرید رو به یک دیتاویو بایند کرده ای. درسته؟ خب وقتی یک ردیف رو از دیتاگرید حذف میکنی این ردیف بصورت خودبخود از دیتاویو هم حذف میشود. وقتی SortOrder دیتاگرید رو تعییر میدی، SortOrder دیتا ویو هم همزمان تعییر میکند. خب، حالا مشکلت چیه من نمیدونم.
    جوابت اینه: وقتی ردیفی رو از دیتاگرید حذف کردی، ایندکس رکورد جاری برابر است با ایندکس ردیف انتخاب شده فعلی دیتاگرید( بعد از حذف یک ردیف ) با همان SortOrder و با همان کیفیت
    دیگه ساده تر از این موندم که چجوری بگم.
    م...م....من اصلا قصد جسارت نداشتم . درضمن تو کل نوشته های من شما دیتا ویو میبینی؟
    اصل قضیه اینه که من به دلیل مبتدی بودن، دارم یه سوتی وحشتناک میدم.جوری که شما حتی فکرش رو هم نمیکنید.حالا این سوتی چیه،من نمیدونم!
    بازم شرمنده که اینقدر وقتت رو گرفتم.حالا اگه میتونی دستور های کار با دیتا گرید ویو رو بذار.مثلا این: حذف یک Row طوری که از دیتابیس هم پاک بشه. البته اگه وقت داری و اعصابت هنوز داغون نشده.
    Last edited by azorbet; 25-04-2008 at 14:10.

صفحه 1 از 2 12 آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •