نمایش نتایج 1 تا 7 از 7

نام تاپیک: مشکل در سرعت Load داده ها از بانک اطلاعاتی SqlServer در روش Dataset ویزاردی بهمراه Table Adapter

  1. #1
    کاربر دائمی آواتار k1csharpdeveloper
    تاریخ عضویت
    مهر 1389
    محل زندگی
    4باندی مهرشهر کرج
    سن
    41
    پست
    185

    مشکل در سرعت Load داده ها از بانک اطلاعاتی SqlServer در روش Dataset ویزاردی بهمراه Table Adapter

    همکاران و دوستان گرامی من یک نرم افزار دندانپزشکی نوشتم که در یک صفحه اون دچار مشکل شدم و چند ثانیه زمان میبره برای fill کردن داده ها که به این شکل هستش که اول از این فرم که پرونده بیماران هست استفاده میکنیم و با انتخاب بیمار مورد نظر دکمه ویرایش رو میزنیم و وارد فرم دوم میشیم

    که این فرم شامل یک tabcontrol هستش که دارای چندین tabitem هست وقتی این فرم بالا میاد Id رو از فرم قبلی میگیره و اطلاعات اون Id رو لود میکنه منتها مسئله اینجاست که من از روش Table Adapter استفاده کردم و کلیه tabitem ها که هر کدوم شامل یک table هست fill میشه و سرعت میاد پایین کدهایی که در Load فرم استفاده کردم هم به این شکل هستش :

    کدهای برنامه قسمت load ,Constructor



    ئووبه همین ترتیب هرکدوم از این عکس ها برای یک TabItem هستش به جز Fill کردنشون که مشترک بود توی عکس اول حالا من نظرم این بود که tabitem مشخصات رو به همین ترتیب Load کنم ولی مابقی رو کاربر روی هر Tab که زد همون موقع لود بشه اطلاعات اون قسمت و اگر راهی هم وجود داره که سرعت رو ببرم بالا لطف کنید کمک کنید


  2. #2
    کاربر دائمی آواتار k1csharpdeveloper
    تاریخ عضویت
    مهر 1389
    محل زندگی
    4باندی مهرشهر کرج
    سن
    41
    پست
    185

    نقل قول: مشکل در سرعت Load داده ها از بانک اطلاعاتی SqlServer در روش Dataset ویزاردی بهمراه Table Ad


  3. #3
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,718

    نقل قول: مشکل در سرعت Load داده ها از بانک اطلاعاتی SqlServer در روش Dataset ویزاردی بهمراه Table Ad

    سلام،طبق توضیحاتی که خودتون دادید کارتون کاملا غیر منطقی هستش، مثلا شما در یک tabcontrol فرضا 5 تا tabpage دارید و هر tabpage شامل یک جدول خواهد بود. شما اومدید به یکباره تمام کدهای مربوط به این tabpage ها رو درون formload گذاشتید در صورتیکه ممکنه فقط با یک tabpage کار داشته باشی و عملا 4 تا عملیات شما در این حالت نامطلوب هستش. واسه بهبود سرعت برنامه تون خیلی ساده میتونید از رویداد Enter مربوط به tabpage کدهای مورد نظرت رو قرار بدی تا در صورت وارد شدن به اون tabpage اون کدها اجرا بشن ( در واقع جدول مربوط به اون tabpage مقدار دهی بشه).
    موفق باشید.

  4. #4
    کاربر دائمی آواتار k1csharpdeveloper
    تاریخ عضویت
    مهر 1389
    محل زندگی
    4باندی مهرشهر کرج
    سن
    41
    پست
    185

    نقل قول: مشکل در سرعت Load داده ها از بانک اطلاعاتی SqlServer در روش Dataset ویزاردی بهمراه Table Ad

    سلام مرسی که کمک کردید من امتحان کردم و چون موقع باز شدن فرم tabPage اول من که مشخصات بیمار هست و ضروری هست باز شدنش اونو گذاشتم توی load form بمونه و مابقی رو comment گذاشتم تاببینم تغیری توی سرعت اتفاق میفته یا نه که دیدم آنچنان تاثیری نداشت کل کدهای فرم رو بررسی کردم دیدم یک اتفاق عجیب افتاده و یک عالمه کد که جاش اصلا اینجا نیست و بصورت اتوماتیک تولید میشه اضافه شده به فرمم در قالب این قسمت رو چکار میتونم بکنم چون حدود دقیقا 5 ثانیه طول میکشه تا بیاد فرمم و این برای کاربر قابل تحمل نخواهد بود
    private void InitializeComponent
    }
    {

  5. #5
    کاربر دائمی آواتار debugger
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    Turkey
    پست
    843

    نقل قول: مشکل در سرعت Load داده ها از بانک اطلاعاتی SqlServer در روش Dataset ویزاردی بهمراه Table Ad

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

  6. #6
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,718

    نقل قول: مشکل در سرعت Load داده ها از بانک اطلاعاتی SqlServer در روش Dataset ویزاردی بهمراه Table Ad

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

  7. #7

    نقل قول: مشکل در سرعت Load داده ها از بانک اطلاعاتی SqlServer در روش Dataset ویزاردی بهمراه Table Ad

    سلام
    برای پاسخگو نگهداشتن واسط کاربری (Responsive UI) یکی استفاده از BackgroundWorker که باعث میشه کار زمان بر در یک نخ جداگانه اجرا بشه و UI همچنان برای کاربر پاسخگو باشه و دومی استفاده از Lazy initialization در برنامه است.

    Lazy Loading این امکان رو می ده که فقط در هنگام نیاز کار سنگین شروع بشه. مثلاً ممکن است یک فرم بالا بیاید اما کاربر هرگز دکمه مشاهده رکوردها رو نزنه در این صورت چه لزومی داره با لود فرم 100000000 رکورد همون اول نمایش داده بشه!



    // Initialize by using default Lazy<T> constructor.
    // The Orders array itself is not created yet.
    Lazy<Orders> _orders = new Lazy<Orders>();



    http://msdn.microsoft.com/en-us/library/dd997286.aspx

    How to: Run an Operation in the Background

تاپیک های مشابه

  1. سوال: مشکل با چاپ داده های فارسی بانک اطلاعاتی mySql
    نوشته شده توسط Ali0Boy در بخش PHP
    پاسخ: 2
    آخرین پست: جمعه 26 اسفند 1390, 22:40 عصر
  2. پاسخ: 3
    آخرین پست: چهارشنبه 09 خرداد 1386, 12:35 عصر
  3. تبدیل داده های 1 بانک اطلاعاتی sql server به my sql
    نوشته شده توسط mah-bah در بخش SQL Server
    پاسخ: 3
    آخرین پست: یک شنبه 25 اردیبهشت 1384, 23:07 عصر
  4. مشکل تاریخ شمسی و ارتباط آن با بانک اطلاعاتی
    نوشته شده توسط spenans در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 4
    آخرین پست: جمعه 20 آذر 1383, 09:19 صبح
  5. مشکل تاریخ شمسی و ارتباط آن با بانک اطلاعاتی
    نوشته شده توسط spenans در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 2
    آخرین پست: پنج شنبه 19 آذر 1383, 02:40 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •