PDA

View Full Version : علت وجودي DataAdapterها در VB.NET


Orion
5 May 2008, 08:33 AM
سلام
يكي به من توضيح بده علت وجود DataAdapterها براي برقراري ارتباط با ديتابيس چيه؟ من ميتونم به راحتي با استفاده از DBConnection و DBCommand دستورات SQL خودم رو اجرا كنم و اگر خروجي داشته باشه بريزم تو Dataset. حالا اين وسط DataAdapter چيكارست؟!!

palizesoftware
5 May 2008, 09:10 AM
خب اينطوري كه شما از طريق command‌ دستورات رو اجرا ميكنيد، خروجي رو درون DataReader ميريزيد كه قابليت حركت به سمت جلو رو داره (كرسر ركوردها رو ميگم) ولي امكان آپديت و حذف و ... رو نداره. و اگر بخواهيد حذفي انجام بديد يا ركوردي رو به روز كنيد بايد باز از command‌ ديگري استفاده كنيد.
منتها DataAdapter‌ اين امكان رو ميده كه نتيجه يه command‌ رو به درون به DataSet‌، پر كنه (Fill) و با متدهاي قوي كه DataSet داره بتونيد بصورت منفصل (كاري كه در DataReader امكانش نيست) كار كنيد. يعني Connection رو ببنديد و از ديتاهاي موجود در ديتاست استفاده كنيد. حالا هر زمان كه ركورد يا ركوردهايي حذف يا تغيير كرد به يكباره از طريق DataAdapter‌ اون ديتاست رو آپديت كنيد.

Orion
10 May 2008, 02:16 PM
خيلي ممنون. ولي همچين شيرفهم شيرفهم نشدم! :D

palizesoftware
10 May 2008, 02:50 PM
خيلي ممنون. ولي همچين شيرفهم شيرفهم نشدم! :D
خيلي ساده هست. كجاش رو متوجه نشدي؟

Orion
11 May 2008, 08:19 AM
دقيقاً نميدونم كجا از كدومشون استفاده كنم. آيا لزومي داره كه از DataAdapter استفاده بشه؟

palizesoftware
11 May 2008, 09:22 AM
وقتي قرار هست كه داده‌اي از جدول خوانده بشه و مثل table ما نقش lookup‌ رو داره (داده‌هاي شمارشي) و قرار نيست ركوردها توسط كاربر ويرايش بشه،‌توصيه من استفاده از DataReader به همراه Command‌ هست. چون DataReader سرعت بالايي نسبت به DataAdapter‌ داره و صرفا براي خواندن استفاده ميشه.
اما اگر قرار باشه كه ركوردهايي كه خوانده ميشه توي حافظه نگه داشته بشه تا توسط كاربر ويرايش بشه و مهمتر اينكه DataSet‌ ميتونه بصورت منفصل از پايگاه به حيات خودش ادامه بده (DataReader‌ نميتونه در لحظه خواندن با كانكشن بسته اين كار رو انجام بده) بهترين گزينه DataSet‌هست كه از طريق DataAdapter‌ داده‌ها رو واكشي ميكنه و همينطور ميتونه ديتاهاي ويرايش شده رو آپديت كنه. بعلاوه DataSet متدهاي زيادي براي جستجو در بانك داره.