DataAdapter Example in C#: DataAdapters का प्रयोग न केवल Underlying Data Source के Database से Query करने के लिया किया जा सकता है बल्कि हम इसका प्रयोग करके Underlying DataSource के Database को Update भी कर सकते हैं।
Underlying DataSource से Data की Query करने के लिए हमें सामान्यत: SQL Queries को Execute करना होता है, जिन्हें DbCommand Object में Wrap किया गया होता है और इस विषय में हम पहले ही Discuss कर चुके हैं।
DataAdapter Object को हम दो तरीकों से उपयोग में लेते हुए अपना Database Application Create कर सकते हैं। पहले तरीके के अन्तर्गत हम Visual Studio के Visual Tools को Use करते हैं, जबकि दूसरे तरीके के अन्तर्गत हम Manual Codes लिखते हैं।
हालांकि Visual Tools हमारी काफी मदद करते हैं, लेकिन Enterprise Level के Database Applications Develop करते समय हमें Specific Type की Requirements को पूरा करने के लिए Manual Coding लिखने की जरूरत पडती है, क्योंकि Manual Coding हमें हमारे Application पर ज्यादा Control Provide करते हैं।
Accessing Single Table Data with Visual Studio
जब हम किसी Underlying DataSource के किसी Single Table के Data को Visual Studio के माध्यम से Access करते हुए उसे Disconnected Mode में अपने Application में प्राप्त करना चाहते हैं, तो हमें निम्नानुसार Steps को Follow करना होता है:
- सबसे पहले हमें Visual Studio में FILE => New => Project… पर Click करके दिखाई देने वाले Dialog Box से Windows Forms Application Project Select करके Application के नाम व Solution आदि विभिन्न जरूरी Information को Specify करते हुए नया Project Create करना होता है और दिखाई देने वाले Form व Project से सम्बंधित विभिन्न जरूरी Properties को Set करना होता है।
- Form से सम्बंधित विभिन्न जरूरी Properties को Set करने के बाद अब हमें VIEW => Other Windows => Data Sources Option को Click करना होता है या फिर हम Shift+Alt+D Shortcut Key भी Press कर सकते हैं, जिससे हमारे सामने निम्न चित्रानुसार Left Side में एक नया Side-Window Display होता है:
- इस Data Sources Window में दिखाई देने वाले “Add New Data Source…” Hyperlink या Button को Click करते ही हमारे सामने निम्न चित्रानुसार “Data Source Configuration Wizard” Display होता है:
- इस Dialog Box में हमें ये बताना होता है कि हमारा Application अपना Data कहां से प्राप्त करेगा। चूंकि हमारा Application अपना Data Disconnected Mode में DataSet Object से प्राप्त करेगा, इसलिए इस Dialog Box में “DataSet” Option को Select करके हमें “Next >” Button पर Click करना होता है। परिणामस्वरूप हमारे सामने इस “Data Source Configuration Wizard” का निम्नानुसार नया Screen Display होता है:
- इस नई Screen पर हमें ये बताना होता है कि हम हमारे Application में किस प्रकार का Database Model Use करना चाहते हैं। NET दो प्रकार के Database Model को Support करता है, जिन्हें Dataset व Entity Data Model के नाम से जाना जाता है और क्योंकि हम इस पुस्तक में मूल रूप से ADO.NET के Dataset Model के बारे में Discuss कर रहे हैं, इसलिए इस Screen पर दिखाई देने वाले Dataset Model को Select करते हैं। हम यहां जो Data Model Choose करते हैं, उस Data Model के आधार पर ये त; होता है कि हम हमारे Application के Codes में किन Data Objects को Use कर सकेंगे। Dataset Object Model को Select करने के बाद हमें “Next >” Button पर Click करना होता है। जैसे ही हम इस Button पर Click करते हैं, हमारे सामने इस Wizard का निम्नानुसार अगला Screen Display होता है:
- इस Screen पर हमें उस Data Connection को Specify या Choose करना होता है, जिसका प्रयोग करते हुए हम Underlying Data Source से अपने DataSet Object में Data को Retrieve करना चाहते हैं। जबकि नया Data Connection Create करने व उसे Appropriate Data Source से Visual Studio का प्रयोग करते हुए Connect करने के विषय में हम इस पुस्तक की शुरूआत में NET – Connection Object Chapter के अन्तर्गत विस्तार से Discuss कर चुके हैं। हमने इस Chapter के अन्तर्गत जिस Visual Studio तरीके का प्रयोग करते हुए Visual तरीके से जो Data Connection Create किया था, वही Data Connection हमें उपरोक्त चित्र में दिखाई देने वाले Data Connections के रूप में Display होता है, जहां Appropriate Data Connection को Select करके हमें “Next >” Button पर Click करना होता है, जिसके परिणामस्वरूप हमारे सामने निम्नानुसार अगला Screen Display होता है:
- इस Screen पर हमें हमारे Visual Studio Wizard द्वारा Newly Create होने वाली Connection String को एक नाम देना होता है, जो कि हमारे Application की Configuration File में Save होता है। नाम Specify करके “Next >” Button पर Click करते ही हमारे सामने इस Wizard का अगला Screen Display होता है:
- इस Screen पर हमें हमारे Underlying Data Source के वे सभी Database Objects दिखाई देते हैं, जिन्हें हम हमारे Currently Create होने वाले Container DataSet Object के Members की तरह प्राप्त करना चाहते हैं। चूंकि हम हमारे Application में Currently केवल एक ही DataTable के साथ प्रक्रिया करना चाहते हैं, इसलिए इस चित्र में दिखा, अनुसार हमने “authors” नाम की Table को Select किया है, जो कि हमारे Newly Create होने वाले pubsDataSet नाम के DataSet Object की DataTable है। अन्त में हमें “Finish” Button को Click करना होता हैं, जबकि किसी भी Step में Wizard में फिर से Backward जाने के लिए हम “< Previous” Button को Click कर सकते हैं। Finish Button को Click करते ही हमारे Visual Studio के Data Source Window में निम्नानुसार एक नया Data Source Add हो जाता है:
- इस Data Source के विभिन्न Columns को Windows Form पर हम DataGridView Control अथवा Label/Control Details के रूप में Form पर Display कर सकते हैं। Default रूप से सभी Newly Create होने वाले DataTable Objects, DataGridView Control के लिए Set होते हैं, जबकि DataTable Object के Down Arrow पर Click करने पर Display होने वाले Popup Window से हम निम्न चित्रानुसार दोनों में से किसी भी Option को Select कर सकते हैं:
- इस DataTable Object को यदि हम चाहें तो अपने Form पर Drag करके Drop कर सकते हैं, जिससे पूरा Form निम्न चित्रानुसार Automatically Design हो जाता है:
- जैसाकि हम देख सकते हैं कि हमारे Form पर Automatically हमारे authors Table के सभी Columns को Display करने के लिए Pre-Defined DataGridView Control Place हो गया है। जबकि यदि हम इसे DataGridView के स्थान पर Details के रूप में Set करते, तो ये ही सारे Columns निम्नानुसार दिखाई देते:
- जबकि यदि हम चाहें, तो Data Source Window में दिखाई देने वाले DataTable के सभी Columns के लिए निम्न चित्रानुसार उनकी Properties को अलग-अलग Specify करते हुए उनके लिए अलग-अलग Controls Set कर सकते हैं और अपनी जरूरत के अनुसार DataTable के विभिन्न Columns को Form पर One-by-One Drag and Drop कर सकते हैं:
- जब हम उपरोक्तानुसार Drag and Drop तकनीक का प्रयोग करते हुए अपना Form Design करते हैं, तो Form को Norma तरीके से काम करवाने के लिए निम्न चित्रानुसार कुछ नए Visual Tools हमारे Application के Bottom में Add जो जाते हैं, जो कि इस Form को बिना किसी तरह का Code लि[ो हुए भी Working बनाते हैं। परिणामस्वरूप जब हम इस Windows Forms Application को Ctrl+F5 Key Combination द्वारा Run करते हैं, तो हमें हमारा Output Form कुछ निम्नानुसार दिखाई होता है:
हम देख सकते हैं कि हालांकि हमने इस Windows Form Application को Create करने के लिए एक भी Line का Code नहीं लिखा है, लेकिन जब हम उपरोक्तानुसार Wizard को Use करते हैं, तो Visual Studio स्वयं ही अपने स्तर पर Coding Create करता है और हमें एक Working Form Provide करता है।
Visual Studio द्वारा Create की गई Coding को देखने के लिए हम Project => Show All Files Option को Click कर सकते हैं। जैसे ही हम इस Option को Click करते हैं, Visual Studio के Solution Explorer Window में हमें निम्न चित्रानुसार कुछ और Files दिखाई देने लगती हैं:
इन Hidden Files में App.config नाम की एक File भी Exist होती है, जिसमें हमारे Underlying Data Source से Connection स्थापित करने के लिए Use होने वाली Connection String निम्नानुसार XML Format में Saved होती है, जिसका प्रयोग हमारा Application, Underlying Data Source से Connection स्थापित करने के लिए करता है:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> </configSections> <connectionStrings> <add name="DataAdapterSingleFormAccessing.Properties.Settings.pubsConnectionString" connectionString= "Data Source=(local)\SQLSERVEREXPRESS;Initial Catalog=pubs;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> </configuration>
जब हम Manual Coding करते हैं, तब भी Connection Establish करने के लिए हमें इसी App.config File में Specified Connection String को ही उपयोग में लेना चाहिए, क्योंकि Visual Studio द्वारा Generated ये Connection String एक Perfect ConnectionString है।
इन Hidden Files के अलावा Visual Studio हमारे Form के नाम की एक .cs File भी Create करता है, जिसमें से एक File का Extension .Designer.cs होता है। इस File में हमारे Form Window पर Automatically Place होने वाले विभिन्न Visual Controls से सम्बंधित Coding होती है, जिसे Visual Studio हमारे लिए Automatically Generate करता है। साथ ही .resx Extension की एक और File Create होती है, जिसमें हमारे Form पर Place Visual Controls में Use होने वाले Resources की Information होती हैं।
इन Files के अलावा जैसाकि हम उपरोक्त चित्र में देख सकते हैं कि हमने Wizard Use करते हुए जो Form Create किया है, उस Form में Data को Underlying Data Source से प्राप्त करके Disconnected Mode में Current Application में Strongly Typed Object के रूप में Available करवाने के लिए Visual Studio ने हमारे लिए pugsDataSet.xsd नाम की एक File भी Create की है, जिसमें निम्न चित्रानुसार Data Table के रूप में Disconnected Mode में authors नाम की DataTable Exist है:
जबकि यदि हम हमारे Current Windows Form की .cs File को Open करें, जिसका नाम हमने हमारे Current Application में frmDa4SingleForm रखा है, तो इस .cs File में Visual Studio द्वारा Generated निम्नानुसार Codes हैं:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace DataAdapterSingleFormAccessing { public partial class frmDA4SingleForm : Form { public frmDA4SingleForm() { InitializeComponent(); } private void authorsBindingNavigatorSaveItem_Click(object sender, EventArgs e) { this.Validate(); this.authorsBindingSource.EndEdit(); this.tableAdapterManager.UpdateAll(this.pubsDataSet); } private void authorsBindingNavigatorSaveItem_Click(object sender, EventArgs e) { this.Validate(); this.authorsBindingSource.EndEdit(); this.tableAdapterManager.UpdateAll(this.pubsDataSet); } private void frmDA4SingleForm_Load(object sender, EventArgs e) { // This line of code loads data into the 'pubsDataSet.authors' table. //You can move, or remove it, as needed.this.authorsTableAdapter.Fill(this.pubsDataSet.authors); } } }
और जैसाकि हम उपरोक्त Code द्वारा समझ सकते हैं कि हमने हमारे Form पर स्थित विभिन्न Controls को Underlying DataSet Object में स्थित authors नाम की DataTable के Data से Fill करने के लिए निम्नानुसार केवल एक ही Line का Code लिखा गया है:
this.authorsTableAdapter.Fill(this.pubsDataSet.authors);
और ये Code तब Run होता है, जब हमारा Form Memory में Load होता है। यानी केवल इसी एक Line के Code से हमारे Form पर स्थित सभी Controls में Data Fill हो जाते हैं।
हालांकि हम Visual Studio द्वारा Provided इस Wizard का प्रयोग करके भी अपना Application Develop कर सकते हैं। लेकिन जब भी कभी हमें Enterprise-Level Application Develop करने की जरूरत पडती है, तो हमें हमारे DataTables को विभिन्न प्रकार की Classes में Pass करने की जरूरत पडती है, जो कि हमारे Data के XSD Messages या Business-Object Representations को Formulate करने का काम कर सकते हैं।
इसलिए एक Enterprise-Level Application की विभिन्न प्रकार की Situations को ठीक से Control व Handle करने के लिए हमें हमारे स्वयं के Manual Codes लिखने की जरूरत पडती है और उस Manual Code के द्वारा ही हमें हमारे DataTable व DataSet Objects को Fill करना होता है।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook ADO.NET with C# in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
ADO.NET with C# in Hindi | Page:501 | Format: PDF