Introduction to ADO.NET

ADO.NET એ .NET application ની database સાથે વાત કરવાની રીત છે: એ કામ કરવાના બે રસ્તા આપે છે, rows ને વહેતી વાંચવા માટેનો ઝડપી connected reader, અને connection બંધ કર્યા પછી પણ વાપરી શકાય એવી disconnected in-memory નકલ.

9 min read · 8 cards · 2 checks

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


Theory

FestConnect ને database જોઈએ છે

અત્યાર સુધી FestConnect ના events અને registrations ને 'list' કહીને ચલાવી લીધું છે. ખરેખર તો એ database માં રહે છે, એ જ પ્રકારના database માં જેને DBMS માં તમે SQL થી design કરવાનું અને query કરવાનું શીખ્યા હતા. હવે સવાલ એ છે: events વાંચવા અને registration સાચવવા માટે .NET web application ખરેખર એ database સાથે વાત કઈ રીતે કરે છે?

જવાબ છે ADO.NET, જે .NET Framework નો બરાબર આ કામ માટે બનેલો ભાગ છે. આ પાઠમાં ADO.NET એટલે શું અને એ આપતી એક મોટી પસંદગી, એટલે કે connected કે disconnected, એની ઓળખાણ થશે.

Theory

ADO.NET એટલે શું

ADO.NET એ .NET Framework નો data-access ભાગ છે: એટલે કે classes નો એવો સમૂહ જેને તમારી application database સાથે જોડાવા, SQL commands ચલાવવા અને પરિણામો સંભાળવા વાપરે છે. એ પોતે database નથી; એ તમારા C# code અને તમે વાપરો છો તે database (SQL Server, અને providers દ્વારા બીજાં પણ) વચ્ચેનો પુલ છે.

એને FestConnect અને એના data વચ્ચેની નળી સમજો. તમે ADO.NET ને connection અને SQL command આપો છો; એ તમારી query database સુધી લઈ જાય છે અને rows પાછી લાવે છે. એ rows ને તમે કઈ રીતે સંભાળો છો એમાં જ બે models જુદા પડે છે.

Formula

Connected સામે disconnected: મુખ્ય વિચાર

ADO.NET data સાથે કામ કરવાના બે રસ્તા આપે છે.

Connected: તમે connection ખોલો છો, એ ખુલ્લું હોય ત્યાં સુધી rows વાંચો છો (DataReader વાપરીને), પછી બંધ કરો છો. ઝડપી અને હલકું, પણ તમે વાંચો ત્યાં સુધી આખો વખત લાઇન ખુલ્લી રાખવી પડે.

Disconnected: તમે connection ફક્ત એટલી વાર ખોલો છો કે data ની memory માં (DataSet માં) નકલ થઈ જાય, પછી એને બંધ કરીને એ in-memory નકલ સાથે છૂટથી કામ કરો છો. Connection ફક્ત થોડી વાર જ પકડી રખાય છે.

એક ખુલ્લી લાઇન પર વહેતું વાંચે છે; બીજું નકલ લઈને ફોન મૂકી દે છે.

Theory

કયું ક્યારે બંધબેસે

Connected model (DataReader) ત્યારે આદર્શ છે જ્યારે તમારે ફક્ત rows ઝડપથી વાંચીને આગળ વધવું હોય, દાખલા તરીકે FestConnect ના events સીધા page પર બતાવવા હોય. એ ફક્ત આગળ તરફ ચાલે છે અને ફક્ત વાંચી શકાય છે: તમે rows માંથી એક જ વાર, ઉપરથી નીચે વહેતા પસાર થાઓ છો. ઓછામાં ઓછી memory, વધુમાં વધુ ઝડપ.

Disconnected model (DataAdapter જે DataSet ભરે છે) ત્યારે આદર્શ છે જ્યારે તમારે data ને memory માં પકડી રાખવો હોય, એમાં page ફેરવવાં હોય, એને ઘણાં controls સાથે bind કરવો હોય, અથવા એને બદલીને ફેરફારો પછીથી પાછા મોકલવા હોય, અને એ બધું database નું connection રોકી રાખ્યા વગર કરવું હોય. ખુલ્લા connection થી છૂટકારો મેળવવા બદલામાં તમે થોડી memory અને થોડી તૈયારી આપો છો.

Quiz

ADO.NET ના connected અને disconnected models વચ્ચેનો મુખ્ય ફરક શું છે?

  1. Connected SQL વાપરે છે, જ્યારે disconnected SQL વાપરતું જ નથી
  2. તમે rows વાંચો ત્યાં સુધી connected database નું connection ખુલ્લું રાખે છે; disconnected data ની memory માં નકલ કરીને connection બંધ કરી દે છે, એટલે તમે નકલ સાથે કામ કરો છો
  3. Disconnected database વગર ચાલે છે, જ્યારે connected ને database જોઈએ છે
  4. એ એક જ વસ્તુનાં બે નામ છે
Show the answer

તમે rows વાંચો ત્યાં સુધી connected database નું connection ખુલ્લું રાખે છે; disconnected data ની memory માં નકલ કરીને connection બંધ કરી દે છે, એટલે તમે નકલ સાથે કામ કરો છો

ભેદ connection નો છે. Connected model માં તમે connection ખુલ્લું રાખો છો અને એના દ્વારા rows વાંચો છો (DataReader), આગળ તરફ વહેતા. Disconnected model માં તમે connection ફક્ત એટલી વાર ખોલો છો કે data ની memory માં નકલ થઈ જાય (DataAdapter દ્વારા DataSet માં), પછી એને બંધ કરીને એ in-memory નકલ સાથે કામ કરો છો. વિકલ્પ A ખોટો છે: data લાવવા બંને SQL વાપરે છે. વિકલ્પ C ખોટો છે: બંનેને database જોઈએ છે; 'disconnected' એટલે data load થયા પછી connection બંધ થાય છે, database નથી એવું નહીં. વિકલ્પ D ખોટો છે: આ ખરેખર જુદા રસ્તા છે અને એમના ભોગ પણ જુદા છે (ઝડપ તથા ઓછી memory સામે ખુલ્લી લાઇન વગરની છૂટ).

Think first

જોડાયેલા રહેવાને બદલે disconnect શા માટે થવું?

Connected reader જો વધુ ઝડપી અને હલકો હોય, તો disconnected DataSet model અસ્તિત્વમાં જ શા માટે છે? વિચારીને પછી tap કરો.

Show the answer

કારણ કે database નું connection દુર્લભ અને વહેંચાયેલું સાધન છે, અને મોટા પાયે એને ખુલ્લું રાખવું મોંઘું પડે છે. FestConnect જેવો web server એકસાથે સેંકડો વપરાશકારોને સેવા આપતો હોય, અને databases એકસાથે અમુક જ connections ને છૂટ આપે છે. જો દરેક page data બતાવે, એનાં pages ફેરવે અને એને બદલે ત્યાં સુધી આખો વખત પોતાનું connection ખુલ્લું રાખે, તો server પાસેથી connections ઝડપથી ખૂટી જાય. Disconnected model data ઝડપથી ઉપાડી લે છે, connection તરત છોડી દે છે, અને પછી તમને in-memory નકલ સાથે જેટલો વખત જોઈએ એટલો કામ કરવા દે છે, એટલે કીમતી connection લગભગ તરત જ પછીના request માટે મોકળું થઈ જાય છે. વળી એ તમને એ જ data ને ઘણાં controls સાથે bind કરવા, એને sort કરવા અને એનાં pages ફેરવવા, અને સાચવતાં પહેલાં offline બદલવા પણ દે છે. ઝડપી વાંચીને બતાવી દેવા માટે connected DataReader ઉત્તમ છે; connection pool પર દયા રાખીને data સાચવવો અને એની સાથે રમવું હોય ત્યારે disconnected DataSet વધુ સારું છે. ઉપાડો, છોડો, નકલ સાથે કામ કરો: એ જ disconnected નું તત્વજ્ઞાન છે.

At a glance

બાબતConnected (DataReader)Disconnected (DataSet)
Connectionવાંચતી વખતે ખુલ્લું રહે છેથોડી વાર ખૂલે, પછી બંધ થાય
Dataવહેતો, ફક્ત આગળ તરફ, ફક્ત વાંચી શકાયMemory માં નકલ થાય, બદલી શકાય
ઝડપ અને memoryઝડપી, ખૂબ હલકુંવધુ memory અને વધુ તૈયારી
કયા માટે શ્રેષ્ઠPage પર ઝડપી વાચનData પકડી રાખવો, page ફેરવવાં, offline બદલવો

Summary

Key takeaways

  • ADO.NET એ .NET Framework નો data-access ભાગ છે: એટલે કે .NET app database સાથે વાત કરવા વાપરે છે તે classes.
  • એ પુલ છે, database નહીં: તમે connection અને SQL આપો છો, અને એ તમારા code તથા database વચ્ચે queries અને પરિણામો લઈ જાય છે.
  • Connected model (DataReader): connection ખુલ્લું રાખો અને rows ને ફક્ત આગળ તરફ વહેતી વાંચો; ઝડપી અને હલકું, ઝડપી વાચન માટે શ્રેષ્ઠ.
  • Disconnected model (DataAdapter અને DataSet): data ની memory માં નકલ કરો, connection બંધ કરો, અને નકલ સાથે કામ કરો; લવચીક, connection pool પર વધુ દયાળુ.
  • Disconnect થવું અગત્યનું છે કારણ કે database નાં connections દુર્લભ અને વહેંચાયેલાં હોય છે, ખાસ કરીને વ્યસ્ત web server પર.
  • ઝડપી વાંચીને બતાવવા માટે connected પસંદ કરો, data પકડી રાખવા, page ફેરવવા કે બદલવા માટે disconnected.
  • યાદ રાખવાની કડી: connected ખુલ્લી લાઇન પર વહેતું વાંચે છે; disconnected નકલ લઈને ફોન મૂકી દે છે.

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