واضح آرشیو وب فارسی:سایت ریسک: azorbet24-04-2008, 01:17 AMبا سلام. من یه datagridview دارم که وصله به یک پایگاه اکسس.یک Button هم دارم که با کلیک بر روی آن،ردیف انتخاب شده هم توی دیتاگرید Delete میشه و هم توی پایگاه داده.بعد از پاک شدن فیلدی به نام indx از صفر تا n مقدار دهی میشه(n تعداد رکوردها ست).حالا میخوام دیتا گرید رو refresh کنم تا بتون مقادیر جدید indx رو ببینم.باید چی کار کنم؟ Bracket24-04-2008, 01:23 AMاز متد Refresh استفاده کنید . azorbet24-04-2008, 01:37 AMاز متد 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.Db 1DataSet.tbl1) DataGridView1.Refresh() azorbet25-04-2008, 12:25 AMبه خدا خیلی گیر این مساله هستم.لطفا کمک کنید!!! shalineh25-04-2008, 02:20 AM!!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! دوست عزیز، چند نکته رو میخوام یاد آوری کنم. کدی که شما نوشته اید، از نظر منطق برنامه نویسی ایرادی نداره. اما همین که فقط (تاکید میکنم فقط) بخاطر حذف یه رکورد از دیتابیس و دیتاگرید ، دوباره داری دیتاست رو Fill میکنی ، ایده خوبی نیست. این کار در حجم وسیع رکوردها نه تنها برنامه رو بلکه کل سیستم رو میتونه فلج کنه. شما دیتاگرید رو به یک DataView بایند کرده ای. خب وقتی میای یک رکورد رو از دیتاگرید حذف میکنی، همین رکورد رو از دیتابیس هم حذف میکنی، دیگه Fill کردن به چه منظوری است؟ نحوه فیــــلترینگ رکوردها مگه تغییر کرده است؟ با حذف اطلاعات از DataView هیچ نیازی به Filling مجدد دیتاست نیست. چون هر تغییری در DataView ، باعث آپدیت اتوماتیک دیتاست خواهد شد. ( بجز F i l t e r i n g). شما براحتی میتونی با حذف یک Row از دیتاگرید، ایندکس رکورد فعلی رو که فوکوس روی آن است رو بدست بیاری و روال رو ادامه بدی. در خود MSDN هم به این نکته اشاره شد است که عملیات Fill بسیار وقت گیر است و چنین فرض شده است که در طول اجرای برنامه فقط یکبار فراخوانی میشود. یا حداقل در مواقعی که نیاز به فیــــلترینگ مجدد دیتابیس ( نه DataView ) میباشد. امیدوارم تونسته باشم راهنماییت کرده باشم. برای مثال عرض میکنم، در برنامه ای که برای اورژانس یکی از شهر ها نوشته بودیم با حجم میلیونی از رکوردها مواجه بودیم و اگه میخواستیم با حذف یک ردیف دوباره Fill رو فراخوانی کنیم، فاتحه برنامه خونده شده بود. دقیقا همین ایده ای رو که گفتم اونجا پیاده سازی کردیم. اگه متوجه نشدی، سعی میکنم تا فردا یک مثال عملی واست بنویسم. azorbet25-04-2008, 12:03 PMخیلی ممنون از راهنماییت ولی بازم نگرفتم چی شد.بذار پای تازه کار بودنم.سوالم رو جور دیگه ای مطرح می کنم. من یه دیتاگرید متصل به یه پایگاه داده دارم و میخوام کاری کنم که هر وقت کاربر روی دکمه "حذف" کلیک کرد، row جاری هم از دیتاگرید حذف بشه و هم از پایگاه داده.درضمن قابلیت Sorting هم فعاله.مشکل من هم، همین Sort هست. چون اگه نبود، DataGridView1.CurrentRow.Index مشکل من رو حل میکرد.ولی با فعال بودن Sort مجبورم فیلدی برا ذخیره کردن ایندکس بسازم(شاید این کارم اشتباه باشه) shalineh25-04-2008, 12:34 PMولی با فعال بودن Sort مجبورم فیلدی برا ذخیره کردن ایندکس بسازم(شاید این کارم اشتباه باشه) اگه Sort رو در همون DataView انجام بدی، مشکلت حل میشه. یعنی نتایج رو بصورت Sort شده در دیتاگرید نمایش بده. azorbet25-04-2008, 12:45 PMاگه Sort رو در همون DataView انجام بدی، مشکلت حل میشه. یعنی نتایج رو بصورت Sort شده در دیتاگرید نمایش بده. وای که من چقدر خنگم :9: :9: با عرض پوزش بازم نفهمیدم!!! من میخوام کاربر بتونه در هر لحظه عملیات سورت رو داشته باشه.یه سوال ، منظورت از DataView همون DataGridView هست؟ shalineh25-04-2008, 02:26 PMمنظورت از DataView همون DataGridView هست؟ یعنی بعد از عمری برنامه نویسی ، هنوز فرق بین این دوتا رو نمیدونم؟ دوست عزیز، شما خودت میگی که دیتاگرید رو به یک دیتاویو بایند کرده ای. درسته؟ خب وقتی یک ردیف رو از دیتاگرید حذف میکنی این ردیف بصورت خودبخود از دیتاویو هم حذف میشود. وقتی SortOrder دیتاگرید رو تعییر میدی، SortOrder دیتا ویو هم همزمان تعییر میکند. خب، حالا مشکلت چیه من نمیدونم. جوابت اینه: وقتی ردیفی رو از دیتاگرید حذف کردی، ایندکس رکورد جاری برابر است با ایندکس ردیف انتخاب شده فعلی دیتاگرید( بعد از حذف یک ردیف ) با همان SortOrder و با همان کیفیت :31: دیگه ساده تر از این موندم که چجوری بگم. azorbet25-04-2008, 02:59 PMیعنی بعد از عمری برنامه نویسی ، هنوز فرق بین این دوتا رو نمیدونم؟ دوست عزیز، شما خودت میگی که دیتاگرید رو به یک دیتاویو بایند کرده ای. درسته؟ خب وقتی یک ردیف رو از دیتاگرید حذف میکنی این ردیف بصورت خودبخود از دیتاویو هم حذف میشود. وقتی SortOrder دیتاگرید رو تعییر میدی، SortOrder دیتا ویو هم همزمان تعییر میکند. خب، حالا مشکلت چیه من نمیدونم. جوابت اینه: وقتی ردیفی رو از دیتاگرید حذف کردی، ایندکس رکورد جاری برابر است با ایندکس ردیف انتخاب شده فعلی دیتاگرید( بعد از حذف یک ردیف ) با همان SortOrder و با همان کیفیت :31: دیگه ساده تر از این موندم که چجوری بگم. م...م....من اصلا قصد جسارت نداشتم :42:. درضمن تو کل نوشته های من شما دیتا ویو میبینی؟ اصل قضیه اینه که من به دلیل مبتدی بودن، دارم یه سوتی وحشتناک میدم.جوری که شما حتی فکرش رو هم نمیکنید.حالا این سوتی چیه،من نمیدونم! بازم شرمنده که اینقدر وقتت رو گرفتم.حالا اگه میتونی دستور های کار با دیتا گرید ویو رو بذار.مثلا این: حذف یک Row طوری که از دیتابیس هم پاک بشه. البته اگه وقت داری و اعصابت هنوز داغون نشده.:20: Bracket25-04-2008, 03:26 PMاین لینکها کارت رو راه میندازن احتمالا . http://www.codeproject.com/KB/vb/DataGridViewEditForm.aspx http://www.codeproject.com/KB/grid/datagridview_operations.aspx http://msdn2.microsoft.com/en-us/library/system.windows.forms.datagridview_properties.aspx shalineh25-04-2008, 04:02 PMم...م....من اصلا قصد جسارت نداشتم :42:. درضمن تو کل نوشته های من شما دیتا ویو میبینی؟ اصل قضیه اینه که من به دلیل مبتدی بودن، دارم یه سوتی وحشتناک میدم.جوری که شما حتی فکرش رو هم نمیکنید.حالا این سوتی چیه،من نمیدونم! بازم شرمنده که اینقدر وقتت رو گرفتم.حالا اگه میتونی دستور های کار با دیتا گرید ویو رو بذار.مثلا این: حذف یک Row طوری که از دیتابیس هم پاک بشه. البته اگه وقت داری و اعصابت هنوز داغون نشده.:20: این چه حرفیه؟ هدف من کمک به شماست. البته اگه بتونم. از حرفات فهمیدم که دیتا گرید رو با وِیزارد به دیتابیس وصل کرده ای ( بدترین کار ممکن) اگه مقدوره ، سورست رو بفرست واسم تا اصلاح شده اش رو تقدیمت کنم. اگه تندروی کردم، عذر میخوام. :11: azorbet25-04-2008, 05:10 PMمشکلم حل شد!!! azorbet25-04-2008, 05:25 PMخیلی ممنون.دست همگی درد نکنه. سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 3914]