Introduction to ADO.NET

ADO.NET है कैसे एक .NET application एक database से बात करती है: यह आपको काम करने के दो तरीके देती है, rows stream करने के लिए एक fast connected reader, और connection close करने के बाद आप जिससे काम कर सकते हैं ऐसी एक disconnected in-memory copy।

9 min read · 8 cards · 2 checks

Read in: English · हिन्दी · ગુજરાતી


Theory

FestConnect को एक Database चाहिए

अब तक FestConnect के events और registrations को 'एक list' की तरह hand-wave किया गया है। Reality में ये एक database में रहते हैं, वह kind जो आपने DBMS में SQL से design और query करना सीखा। अब question है: एक .NET web application actually उस database से कैसे बात करती है, events पढ़ने और एक registration save करने के लिए?

Answer ADO.NET है, .NET Framework का वह हिस्सा जो exactly इसके लिए built है। यह lesson introduce करता है ADO.NET क्या है और यह आपको एक big choice offer करता है: connected या disconnected।

Theory

ADO.NET क्या है

ADO.NET .NET Framework का data-access component है: classes का एक set जो आपकी application एक database से connect होने, SQL commands चलाने, और results handle करने के लिए इस्तेमाल करती है। यह खुद एक database नहीं है; यह आपके C# code और आप जो भी database इस्तेमाल करते हैं (SQL Server, और providers के through others) के बीच का bridge है।

इसे FestConnect और इसके data के बीच की plumbing की तरह सोचिए। आप ADO.NET को एक connection और एक SQL command देते हैं; यह आपकी query को database तक carry करता है और rows वापस लाता है। आप उन rows को कैसे handle करते हैं यहीं दो models अलग होते हैं।

Formula

Connected बनाम Disconnected: Core Idea

ADO.NET data के साथ काम करने के दो तरीके offer करता है।

Connected: आप एक connection open करते हैं, यह open रहते हुए rows पढ़ते हैं (एक DataReader इस्तेमाल करते हुए), फिर इसे close करते हैं। Fast और light, पर आपको पूरे समय जब आप पढ़ रहे हों line open रखनी पड़ती है।

Disconnected: आप connection सिर्फ़ इतना खुला रखते हैं जितना data को memory में copy करने के लिए काफ़ी है (एक DataSet), फिर इसे close करते हैं और freely in-memory copy से काम करते हैं। आप connection सिर्फ़ briefly hold करते हैं।

एक open line पर stream करता है; दूसरा एक copy grabs करता है और hangs up करता है।

Theory

हर एक कब Fit होता है

Connected model (एक DataReader) ideal है जब आप बस rows जल्दी पढ़ना चाहते हैं और move on करना चाहते हैं, उदाहरण के लिए, FestConnect के events को सीधा एक page पर listing करना। यह forward-only और read-only है: आप rows के through एक बार stream करते हैं, top से bottom तक। Minimal memory, maximum speed।

Disconnected model (एक DataAdapter एक DataSet filling करता हुआ) ideal है जब आप memory में data hold करना चाहते हैं, इसके through page करना, इसे कई controls से bind करना, या इसे edit करके बाद में changes push back करना, यह सब database connection tied up रखे बिना। आप open connection से freedom के लिए थोड़ी memory और setup trade करते हैं।

Quiz

ADO.NET के connected और disconnected models के बीच key difference क्या है?

  1. Connected SQL इस्तेमाल करता है, जबकि disconnected बिल्कुल SQL इस्तेमाल नहीं करता
  2. Connected database connection open रखता है जब आप rows पढ़ते हैं; disconnected data को memory में copy करता है और connection close करता है, तो आप copy से काम करते हैं
  3. Disconnected एक database के बिना काम करता है, जबकि connected को एक चाहिए
  4. ये same चीज़ के दो नाम हैं
Show the answer

Connected database connection open रखता है जब आप rows पढ़ते हैं; disconnected data को memory में copy करता है और connection close करता है, तो आप copy से काम करते हैं

Distinction CONNECTION के बारे में है। Connected model में आप connection open रखते हैं और इसके through rows पढ़ते हैं (एक DataReader), forward stream करते हुए। Disconnected model में आप connection सिर्फ़ इतना खुला रखते हैं data को memory में copy करने के लिए (एक DataAdapter के through एक DataSet), फिर इसे close करते हैं और in-memory copy से काम करते हैं। Option A wrong है: दोनों data fetch करने के लिए SQL इस्तेमाल करते हैं। Option C wrong है: दोनों को एक database चाहिए; 'disconnected' मतलब है connection LOADING के बाद closed है, database नहीं है यह नहीं। Option D wrong है: ये genuinely अलग approaches हैं अलग trade-offs के साथ (speed और low memory बनाम open line से flexibility)।

Think first

Connected रहने की बजाय आप कभी Disconnect क्यों करेंगे?

अगर connected reader faster और lighter है, disconnected DataSet model बिल्कुल exist क्यों करता है? फिर tap कीजिए।

Show the answer

क्योंकि एक database connection एक SCARCE, SHARED resource है, और इसे open रखना scale पर costly है। FestConnect जैसा एक web server एक साथ सैकड़ों users serve कर सकता है, और databases सिर्फ़ इतने simultaneous connections allow करते हैं। अगर हर page अपना connection पूरे समय open रखे जब यह data display, page, और edit करे, server जल्दी connections से बाहर हो जाएगा। Disconnected model data को जल्दी grab करता है, connection को immediately release करता है, और फिर आपको जितना चाहें उतनी देर in-memory copy से काम करने देता है, तो precious connection अगली request के लिए लगभग तुरंत free है। यह आपको same data को कई controls से bind करने, इसे sort और page करने, और save करने से पहले इसे offline edit करने भी देता है। Connected DataReader एक quick read-and-render के लिए perfect है; disconnected DataSet बेहतर है जब आपको data रखना और manipulate करना है जबकि connection pool के साथ kind रहते हुए। Grab, release, copy से काम कीजिए: यही disconnected philosophy है।

At a glance

AspectConnected (DataReader)Disconnected (DataSet)
ConnectionReading करते हुए open रहता हैBriefly opened, फिर closed
DataStreamed, forward-only, read-onlyMemory में copied, editable
Speed और MemoryFast, बहुत lightज़्यादा memory और setup
इसके लिए Bestएक page पर quick readsData offline hold, page, edit करना

Summary

Key takeaways

  • ADO.NET .NET Framework का data-access component है: वे classes जो एक .NET app database से बात करने के लिए इस्तेमाल करता है।
  • यह एक bridge है, database नहीं: आप एक connection और SQL supply करते हैं, और यह queries और results को आपके code और database के बीच carry करता है।
  • Connected model (DataReader): connection open रखिए और rows forward-only stream कीजिए; fast और light, quick reads के लिए best।
  • Disconnected model (DataAdapter + DataSet): data को memory में copy कीजिए, connection close कीजिए, और copy से काम कीजिए; flexible, connection pool के प्रति kinder।
  • Disconnecting matter करता है क्योंकि database connections scarce और shared हैं, especially एक busy web server पर।
  • Quick read-and-render के लिए connected चुनिए, data hold, page, या edit करने के लिए disconnected।
  • Memory hook: connected एक open line पर stream करता है; disconnected एक copy grabs करता है और hangs up करता है।

Study this properly

This page is the lesson to read. In Gri-Learn the same topic is a graded deck: the self-checks are scored and your weak topics are tracked. Free to start.

Start this topic

Already have an account? Sign in

More from Database Access and Client-Server Communications

Gri-Learn · syllabus-mapped B.C.A. lessons in English, Hindi and Gujarati

Introduction to ADO.NET · .NET Technology (Major-13) · Gri-Learn