PDA

View Full Version : استفاده از دو دستور تو در تو در ExecuteReader ها



masoodp666
سه شنبه 28 خرداد 1387, 23:42 عصر
درود.
من با یه دستور executereader دارم یه گرید و پر میکنم و در عین حال هم میخوام وقتی که داره سطر به سطر اون پر میشه یکی از سطر ها رو با یه دستور executereader دیگه یه عملیات دیگه هم روش انجام بدم. ولی همونطور که میدونید اشکال میگیره از بابت اینکه کانکشن توسط اون دستور اولی اشغال شده و نمیشه. و اینو میدونم که با نوشتن MultipleActiveResultsets=True در SQLConnection 2005 این مشکل حل میشه ولی من SQL 2000 !
برای انجام عملیات باید حتما اولی بسته شه که من با این کاری که میخوام بکنم نمیتونم ببندمش.

حتی دستور دومی رو هم که در حین دستور اول داره اجرا میشه، با sacaler هم نوشتم اما نشد.

شما چه روشی پیشنهاد میکنید ؟

Chabok
چهارشنبه 29 خرداد 1387, 13:39 عصر
پیشنهاد من : استفاده از DataTable توسط آداپتور در صورتی که حجم داده عظیم نباشد .
گرچه تفاوت فاحشی هم ندارن

موفق باشید .

NewFoxStudent
چهارشنبه 29 خرداد 1387, 15:38 عصر
شما میتونید دو تا SqlCommand و دو تا SqlDataReader تعریف کنید و از هر دیتاریدر برای یک حلقه استفاده کنید

masoodp666
پنج شنبه 30 خرداد 1387, 19:05 عصر
پیشنهاد من : استفاده از DataTable توسط آداپتور در صورتی که حجم داده عظیم نباشد .
گرچه تفاوت فاحشی هم ندارن

موفق باشید .

اگه امکانش هست بیشتر توضیح بدید دقیقا منظورتون چیه ؟




شما میتونید دو تا SqlCommand و دو تا SqlDataReader تعریف کنید و از هر دیتاریدر برای یک حلقه استفاده کنید


ممنون. شما از این روش تا حالا استفاده کردید ؟ جواب میده ؟

Chabok
جمعه 31 خرداد 1387, 01:48 صبح
با استفاده از DataTable شما لازم نیست ارتباط خودتون رو با بانک حفظ کنید و در حلقه ها می توانید از این روش استفاده کنید .
با پر کردن دیتا تیبل ارتباط شما با بانک قطع شده و اطلاعات در این شئ ذخیره می شود .
(آیا منظورتون از توضیح بیشتر نوشتن کد است ؟)

روشی که آقای NewFoxStudent (http://barnamenevis.org/forum/member.php?u=60929) هم فرمودن کاملا جواب میده .

فقط مونده پیاده سازی از جانب شما .:چشمک:

__H2__
یک شنبه 02 تیر 1387, 22:49 عصر
سلام
البته شما علاوه بر دو شیCommand به دو شی Connection هم نیاز دارید. (New مجدد)
گرچه روش DataTable ساده تر و شاید با کد ظاهری کمتری انجام شود ولی DataReader بسیار سریعتر عمل میکند.
میبخشید و موفق باشید.

SabaSabouhi
سه شنبه 04 تیر 1387, 10:19 صبح
با سلام
همون‌طور كه دوستمون گفتن، تو هر Connection فقط يك DataReader باز مى‌تونيد داشته باشين، اما اگه دو تا Connection به DB برقراركنيد مشكلى نداره كه دو تا DataReader داشته باشين و . . .

صبا صبوحى