PDA

View Full Version : sqlDataReader چيست



aminkk
سه شنبه 01 بهمن 1387, 20:12 عصر
سلام
دوستان يه سوال sqldatareader چيه؟يه نفر گفت به جاي dataset استفاده ميشه.اما من نمي دونم در كجا ازش استفاده كنم.
كاربردش در كجا هست؟اصلاً چي جوري ميشه ازش استفاده كرد؟
خيلي ممنون دوستان گل ميشم

araelectronic@ymail.com
سه شنبه 01 بهمن 1387, 23:59 عصر
با سلام
datareader جاي dataset استفاده نميشه كاري شبيه به اون داره با اين تفاوت كه در هر لحظه فقط ميتونه يك ركورد را بازيابي كنه برخلاف dataset كه كل نتيجه جستجو را نگهداري ميكنه در datareader براي دستيابي به همه نتايج يك پرسجو شما بايد براي هر ركوردread بكنيد. در عوض فضاي كمي ميگيره. بسته به زمان استفادتون خودتون ميتونيد انتخاب كنيد .

علیرضا مداح
چهارشنبه 02 بهمن 1387, 07:35 صبح
سلام دوست عزیز،
اشیائی که اینترفیس IDataReader را Implement می کنند(همچون SqlDataReader)، دارای ویژگی های زیر هستند:
1)Forward-Only
2(Connected
3)Read-Only
4)در هر لحظه تنها حاوی "یک" سطر از دیتابیس است،
5)با فراخوانی متد Read، این شیء به سطر بعدی از دیتابیس می رود،
پس مشاهده می شود که این شیء بر خلاف شیء DataSet، به صورت Connected عمل می کند، یعنی با قطع شدن اتصال به دیتابیس، این شیء نیز کاربردی نخواهد داشت، اما DataSet به صورت Disconnected عمل می کند و با قطع ارتباط از بانک، داده ها و ساختار موجود در آن از بین نمی رود و در حافظه باقی می ماند، همچنین میزان فضایی که DataSet اشغال می کند، بیشتر از IDataReader می باشد، چون تمام داده ها و ساختار دیتابیس و ارتباط های میان جداول را در حافظه کلاینت نگهداری می نماید، در نتیجه IDataReader از Performance بالاتر و Overhead پایین تر برخوردار است، البته هنگام بهره گیری از IDataReader، علیرغم مصرف کمتر حافظه، بسیاری از ویژگی ها و انعطاف پذیری های DataSet را از دست خواهید داد، به هر حال انتخاب اینکه در پروژه از کدامیک استفاده شود، نیازمند بررسی و تحلیل دقیق سناریو می باشد،
پس IDataReader و DataSet دارای تفاوت های عمده زیر هستند:
1)IDataReader به صورت Connected و DataSet به صورت Disconnected عمل می کند،
2)IDataReader حافظه ی کمتری را نسبت به DataSet اشغال می کند و Overhead پایین تری به دست می دهد،
3)هنگام بهره گیری از DataSet، امکان دستکاری داده ها(Data Manipulation) و کار با داده ها و ساختار وجود دارد، اما در IDataReader این چنین نیست،
4)......

پ.ن: لطفا" سوالات مربوط به کار با بانک های اطلاعاتی، ADO.Net، LINQ را در بخش مباحث مربوط به دسترسی به داده ها از طریق ADO.Net و LINQ (http://www.barnamenevis.org/forum/forumdisplay.php?f=144) مطرح نمایید، تاپیک به این بخش منتقل شد،/