استفاده از پروگرس بار در datagrid

در اين بخش مي‌توانيد در مباحث مربوط به زبان هاي برنامه نويسي تحت دات نت به بحث بپردازيد

مدیران انجمن: abbas.m.k, athlon64x2, شوراي نظارت

ارسال پست
Fast Poster
Fast Poster
نمایه کاربر
پست: 254
تاریخ عضویت: یک‌شنبه ۱۸ مرداد ۱۳۸۸, ۱۰:۱۲ ب.ظ
سپاس‌های ارسالی: 148 بار
سپاس‌های دریافتی: 389 بار

استفاده از پروگرس بار در datagrid

پست توسط MRSTAR »

با سلام خدمت دوستان

من یه datagrid رو فرم گذاشتم و اونو به یه دیتابیس access وصل کردم وقتی یه اسمو تو اون جستجو میکنم یه مدت طول میکشه


میخواستم ببینم راهی هست تا زمان مورد نیاز رو استخراج کنیم و به یه پروگرس بار بدیم تا کاربر بدونه برنامه در حال کاره و جواب رو کی میده ؟

سرعت جستجو رو چطوری بالا ببریم ؟

ممنون از لطف تون
زندگی همش زنگ تفریح نیست
ساعت بعد حساب داریم ...


[External Link Removed for Guests]
Captain II
Captain II
نمایه کاربر
پست: 246
تاریخ عضویت: یک‌شنبه ۹ فروردین ۱۳۸۸, ۹:۱۱ ق.ظ
سپاس‌های ارسالی: 780 بار
سپاس‌های دریافتی: 791 بار
تماس:

Re: استفاده از پروگرس بار در datagrid

پست توسط arashtabaie »

همونطور که میدونید برنامه ی شما و DBMS دارن به صورت دو thread مجزا و جدا از هم اجرا میشن. در نتیجه این امکان که مثلا برا ایجاد یک progress bar شما میزان پیشرفت زمانی پاسخ DB به queryتون رو بخواید بدونید یک سرویسی هست که باید از طریق DBMS به شما ارائه بشه که بسیاری از اونها (از جمله access, sql server و...) این امکان رو در اختیار شما نمیگذارن. پس شما به شکل تر و تمیز نمیتونید این کار رو بکنید و ابزاری برای این کار در اختیارتون قرار نگرفته. اگر بخواید این کار رو حتما انجام بدید باید از یه طریق دیگه ای وارد بشید. مثلا چیزی که الان به ذهن من رسید اینکه با استفاده از یک query جداگانه affected row count رو از دیتا بیس بگیرید، بعد خودتون cursor دیتا بیس رو به دست بگیرید و مثلا هر سری یک درصد مشخصی از داده ها رو به برنامه تون برگردونید(همش با استفاده از امکانات DBMS و ایجاد Stored Procedureها) که از این طریق progress barتون درست کار کنه. همونطور که حتما به نظر خودتون هم رسیده اینکار باعث میشه که کدتون زیاد، کثیف و برنامه تون کند شه. در نتیجه من پیشنهاد میکنم که برای نشان دادن فعال بودن برنامه به کاربر در حین اجرای queryهای سنگین از marquee progress bar استفاده کنید(مانند همون که موقع سرچ در ویندوز نشان داده میشه و مرتب میاد و میره...). فقط توجه کنید که برای اینکه صفحه ی UIتون بلاک نشه (در طول مدت انجام query) و progress bar رو نشان بده باید دسترسی به دیتا بیس رو در thread جداگانه ای راه اندازی کنید.

موفق باشید... :razz:
Fast Poster
Fast Poster
نمایه کاربر
پست: 254
تاریخ عضویت: یک‌شنبه ۱۸ مرداد ۱۳۸۸, ۱۰:۱۲ ب.ظ
سپاس‌های ارسالی: 148 بار
سپاس‌های دریافتی: 389 بار

Re: استفاده از پروگرس بار در datagrid

پست توسط MRSTAR »

ممنون Captain II

اما شما خیلی سطح بالا نوشتی اگه میشه یه خورده ساده و با یه مثال عملی توضیح بدی خیلی ممنون میشم :razz:
زندگی همش زنگ تفریح نیست
ساعت بعد حساب داریم ...


[External Link Removed for Guests]
Captain II
Captain II
نمایه کاربر
پست: 246
تاریخ عضویت: یک‌شنبه ۹ فروردین ۱۳۸۸, ۹:۱۱ ق.ظ
سپاس‌های ارسالی: 780 بار
سپاس‌های دریافتی: 791 بار
تماس:

Re: استفاده از پروگرس بار در datagrid

پست توسط arashtabaie »

خلاصه ترین حالت ممکن اینه که اون کاری که شما میخواستین انجام بدین برای شما امکانش وجود نداره. در صورت نیاز میتونید از حالت marqueeی پروگرس بار برای نشان دادن در حال فعالیت بودن برنامه استفاده کنید. به توضیحات راجع به threading هم در هنگام کد زدن توجه کنید.
ارسال پست

بازگشت به “Dot Net Programming”