PDA

View Full Version : DataReader& Dataset



Future
دوشنبه 17 اردیبهشت 1386, 11:11 صبح
سلام دوستان، من تازه شروع بکار با سی شارپ کردم. در مورد datareader و dataset هم مقداری مطالعه کردم ولی هنوز کامل نفهمیدم چه فرقی بین این دو است و کی و کجا باید این را بکار برد. ممنون میشم اگه یکی از اساتید توضیح دهد.
با تشکر

Sorenaa_s
دوشنبه 17 اردیبهشت 1386, 12:00 عصر
تفاوتهای زیادی بین این 2 هست که من چندتاشو میگم:
1. ‍Connected بودن و Disconnected بودن:
DataReader یک موجودیت Connected است، یعنی زمان کار با DataReader باید شما به DataBase متصل باشید و در صورت قطع این اتصال DataReader هم از بین خواهد رفت
DataSet یک موجودیت Disconnected است، شما زمان Fill کردن DataSet به DataBase متصل شده اطلاعات را دریافت میکنید، بعد اتصال به بانک را قطع میکنید، و از DataSet استفاده می کنید.

2. نحوه استفاده از Memory
DataReader: در هر لحظه فقط و فقط یک Row از DataReader در حافظه و در دسترس است ( با متد Read یک رکورد به جول حرکت می کند)
DataSet: تمام اجزاء DataSet در حافظه و در دسترس قرار دارد

3. در Framework 1.1 اتصال به بانک (Connection) توسط DataReader رزو می شود، یعنی اینکه از زمان باز شدن یک DataReader تا زمان Close شدن آن هیچ Object دیگری نمی تواند از همان Connection استفاده کند ( به همین دلیل از DataReader بیشتر در WebApplication استفاده می شود )

4. در Windows Application از DataReader برای Binding نمی توان استفاده کرد

5. DataReader: ّForward Only - ReadOnly

6. سرعت حرکت کردن روی رکوردهای DataReader به شدت بالاتر است

7. DataSet دارای مجموعه ای از DataTable ، DataRelation ، Constraint است که موارد استفاده خیلی زیادی دارند

Future
دوشنبه 17 اردیبهشت 1386, 12:19 عصر
دوست عزی از راهنمایی شما ممنونم. ولی به نظر شما از کدامیک بهتر است در برنامه هام استفاده کنم. با توضیحاتی که شما ذکر کردید به نظر من DataReader خیلی بهتر است.
شما کدام را پیشنهاد می کنید

hrshojaei
دوشنبه 17 اردیبهشت 1386, 13:13 عصر
سلام ، دوست عزیز بستگی به استفاده شما داره که می خواین با Data چیکار کنین ، اگه فقط یه رکورد از بانک می خواین DataReader عالیه ، اما اگه یه Table کامل می خواین که بعد هم باهاش بتونین Search و Filter و ... بکنین . DataSet راهشه .

Sorenaa_s
دوشنبه 17 اردیبهشت 1386, 14:46 عصر
منهم موافقم، نسبت به شرایط باید انتخاب کرد. به ReadOnly-ForwardOnly بودن DataReader باید توجه کرد، و یا به رزرو کردن Connection و ...
ولی من کمتر دیدم که تو Windows Application از DataReader استفاده بشه.

hdv212
دوشنبه 17 اردیبهشت 1386, 15:35 عصر
البته چیزایی که دوستان گفتن، جامع بود و من کاملترش میکنم، ببین زمانی که خواستی چیزی چک کنی یا فقط اطلاعات رو نمایش بدی از DataReader استفاده کن، ولی زمانی که میخوای با جدول کارهای بیشتری مثل فیلتر کردن و .... کار کنی از DataSet استفاده کن، ولی اگه خواستی از Dataset استفاده کنی، سعی کن تا میتونی از StoredProcedure استفاده کنی که سرعت بالاتری نسبت به Query های معمولی داره.