SqlDataSource Control in ASP.NET : इस Control को भी हम हमारे .aspx Page के Markup Portion में निम्नानुसार तरीके से अन्य Controls की तरह ही Specify कर सकते हैं:
<asp:SqlDataSource ID="SqlDataSource1" runat="server"></asp:SqlDataSource>
ये Control एक Database Connection को Represent करता है, जो कि Internally ADO.NET Provider को Use करता है। हालांकि SqlDataSource Control को Use करते समय भी हमें Connection, Command व DataReader Objects को Generic तरीके से Create करना पडता है और ऐसा केवल तभी हो सकता है, जबकि हमारा Data Provider, Data Provider Factory जैसे किसी Feature से Included हो।
क्योंकि इस Factory Provider की ये Responsibility होती है कि वह Provider Specific Objects Create करे, जिसकी जरूरत SqlDataSource को Underlying Data Source से Data Access करने के लिए होती है। हालांकि .NET Framework हमें इसके प्रत्येक Data Provider के लिए निम्नानुसार एक Data Provider Factory Provide करता है:
- Data.SqlClient
- Data.OracleClient
- Data.OleDb
- Data.Odbc
हम इन सभी Providers को SqlDataSource के साथ Use कर सकते हैं, जहां हम हमारे Data Source को Provider Name Set करते हुए Select करते हैं। उदाहरण के लिए यदि हमें SQL Server से Connection Establish करना हो, तो SqlDataSource को हमें निम्नानुसार Specify करना होगा:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ProviderName="System.Data.SqlClient" ></asp:SqlDataSource>
हालांकि यदि हम चाहें तो इस Statement में Specify किए गए ProviderName Attribute को Omit भी कर सकते हैं, क्योंकि इस SqlDataSource Control में Default रूप से यही Data Provider Set रहता है।
जबकि यदि हम चाहें तो Oracle Database के लिए Provide किए जाने वाले ODP.NET जैसे Third-Party Provider का प्रयोग करते हुए भी अन्य Databases को भी Use कर सकते हैं, क्योंकि इन Providers में भी अपना स्वयं का Provider Factory होता है, जो हमें इन Third-Party Providers को SqlDataSource के साथ Use करने की सुविधा देता है।
ProviderName Specify कर देने के बाद हमें इस SqlDataSource Control में Connection String Specify करना होता है, जो तय करता है कि हमें किस Underlying Database से Connection स्थापित करना है। हालांकि यदि हम चाहें तो इसी Control में निम्नानुसार Hard-Coded तरीके से भी Connection String को Set कर सकते हैं:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ProviderName="System.Data.SqlClient" ConnectionString="Data Source=KULDEEP;Initial Catalog=Northwind;Integrated Security=True" ></asp:SqlDataSource>
लेकिन बेहतर तरीका यही होता है कि हम Web.config File का प्रयोग करते हुए Configuration Setting के माध्यम से Connection String को Specify करें, जिस प्रकार से पिछले Examples में किया है।
जबकि यदि हम चाहें तो निम्नानुसार एक Special Syntax का प्रयोग करते हुए भी Connection String को Specify कर सकते हैं:
<%$ ConnectionStrings:[NameOfConnectionString] %>
जहां NameOfConnectionString के स्थान पर हमें उस नाम को Specify करना होता है, जिसे हमने हमारी Web.config File में Specify किया होता है। उदाहरण के लिए यदि हमारी Web.config File में Specified Connection String निम्नानुसार है:
File Name: Web.config <?xml version="1.0"?> <configuration> <connectionStrings> <add name="Northwind" connectionString="Data Source=KULDEEP;Initial Catalog=Northwind;Integrated Security=True"/> </connectionStrings> </configuration>
और हम हमारे .aspx Page File में Northwind नाम के साथ Associated Connection String को Set करना चाहते हैं, तो उस स्थिति में हमें निम्नानुसार तरीके को Use करना होता है:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:Northwind %>" ></asp:SqlDataSource>
जब एक बार हम DataProvider व ConnectionString Attribute को Specify कर देते हैं, उसके बाद हमें Query Logic को Specify करना होता है, जिसके आधार पर SqlDataSource Control, Underlying Database से Connection स्थापित करते हुए Records Retrieve करता है।
जिन Attributes को हमने उपरोक्तानुसार तरीके से Manually Set किया है, उन्हीं को हम Visual Studio के Properties Window का प्रयोग करते हुए भी Set कर सकते हैं, जबकि Underlying Database से Connection स्थापित करने के लिए भी आप Visual Studio के GUI तरीके को Use कर सकते हैं, जिसके विषय में हमने Configuring MSSQL Server Express Section के अन्तर्गत Discuss किया था।
जब हम Visual Studio का प्रयोग करते हुए Underlying Database के साथ Visually Connection Establish करते हैं, तो हमें हमारा Connection निम्नानुसार Server Explorer Window में दिखाई देता है, जिसे हम अपने ASP.NET Page को Design Mode में Open कर सकते हैं तथा जैसे ही हम अपने SqlDataSource Control को Select करते हैं, उसकी सभी Properties हमें Properties Window में निम्नानुसार दिखाई देने लगती हैं:

यानी जब एक बार हम Underlying Database के साथ Visual Studio के GUI Wizard तरीके का प्रयोग करते हुए Connection Establish कर लेते हैं, उसके बाद उस Connection Object को उपरोक्त चित्रानुसार हम Visually अपने SqlDataSource Object की ConnectionString Property में Assign कर सकते हैं।
जबकि यदि निम्न चित्रानुसार Design Mode में दिखाई देने वाले SqlDataSource Control को Select करने Popup होने वाले “Configure Data Source…” Hyperlink पर Click करें:

तब भी हमारे सामने निम्न चित्रानुसार एक नया Wizard Display होता है:

जहां दिखाई देने वाले “New Connection…” Button को Click करके हम Underlying Database के साथ एक और नया Connection Create कर सकते हैं। जबकि हमने जो Connection पहले Establish किए थे, अपनी जरूरत के अनुसार उन पहले से Exist Database Connections को उपरोक्त चित्र में दिखाई देने वाले Drop-Down List से Select कर सकते हैं।
जैसे ही हम किसी “Data Connection” को Select करके “Next >” Button पर Click करते हैं, हमारे सामने इस Wizard का निम्नानुसार अगला Screen Show होता है:

इस Screen पर हमें हमारे Underlying Database के साथ Connection स्थापित करने के लिए Use होने वाली Connection String को Create करने की Information मिलती है, जहां यदि हम “Yes, save this connection as:” Checkbox को Check रखते हुए “Next >” Button को Click करते हैं, तो हमारे Application की Web.config File में निम्नानुसार एक नया Connection String Add हो जाता है:
File Name: Web.config <?xml version="1.0"?> <configuration> <connectionStrings> <add name="Northwind" connectionString="Data Source=KULDEEP;Initial Catalog=Northwind;Integrated Security=True" /> <add name="Pubs" connectionString="Data Source=KULDEEP;Initial Catalog=Pubs;Integrated Security=True" /> <add name="NorthwindConnectionString" connectionString="Data Source=KULDEEP;Initial Catalog=Northwind;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings> </configuration>
हम देख सकते हैं कि यहां Create होने वाला Setting Exactly वैसा ही है, जैसा हमने Manually Create किया है। साथ ही अब हम निम्न चित्रानुसार अगली Screen पर पहुंच जाते हैं, जहां हमें उस Table, View या SQL Query को Select या Specify करना होता है, जिसके Data को हम इस SqlDataSource Control के माध्यम से Access व Manipulate करना चाहते हैं:

वांछित Table, View को Select करने अथवा अपनी जरूरत के अनुसार उपरोक्त Screen पर दिखाई देने वाले विभिन्न Buttons को Click करते हुए Modified SQL Query Create करने के बाद फिर से “Next >” Button पर Click करना होता है, जिसके परिणामस्वरूप निम्नानुसार अगला Screen Display होता है:

इस Screen पर दिखाई देने वाले “Text Query” Button पर Click करके हम इस बात को Check कर सकते हैं कि पिछली Screen पर हमने जिन Records के लिए SQL Query को Specify किया है या जिस Table/View को Select किया है, उनके Data ठीक तरह से Retrieve हो रहे हैं या नहीं। यदि Data ठीक तरह से Retrieve हो रहे हों, तो इस Button को Click करने पर उपरोक्त चित्रानुसार सभी Records दिखाई देने लगते हैं, अन्यथा यहां Error Return होता है। इस तरह से अन्त में हमें “Finish” Button पर Click करते हुए इस Wizard का अन्त करना होता है।
जैसे ही हम “Finish” Button पर Click करते हैं, हमारे ASP.NET Page पर स्थित SqlDataSource Control के लिए निम्नानुसार Code Generate हो जाते हैं, जहां हम देख सकते हैं कि ये Code Exactly वैसे ही है, जैसे हमने ऊपर Discuss किया था:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>" SelectCommand="SELECT * FROM [Alphabetical list of products]" ></asp:SqlDataSource>
यानी हालांकि हम Data Manipulation से सम्बंधित हमारे सभी काम Visual Studio द्वारा Provided Wizards व Windows का प्रयोग करते हुए Visually कर सकते हैं, लेकिन फिर भी Manual Codes का ज्ञान होना हमारे लिए बेहतर रहता है, ताकि किसी Specific Situation को हम ज्यादा बेहतर तरीके से Handle कर सकें।
Record Selection
Working of Data Source Controls
Working with Command Types
एक बार SqlDataSource Control Setup कर लेने के बाद हम बड़ी ही आसानी से Underlying Database से Specific Filtered Records का Selection कर सकते हैं, विभिन्न प्रकार के Data Source Controls के माध्यम से विभिन्न प्रकार के Data को Visually Access, Manipulate व Display कर सकते हैं तथा विभिन्न प्रकार के CRUID Operations यानी Create, Record, Update, Insert, Delete Operations Perform कर सकते हैं जो कि किसी भी Dynamic Application के Common Operations होते हैं।
ASP.NET आधारित Professional Level के Dynamic Applications को Step by Step Develop करना सीखने के लिए आप इस पुस्तक Advance ASP.NET in Hindi को अभी खरीद सकते हैं, क्योंकि इस Post को इसी EBook से लिया गया है और यदि ये पोस्ट आपको अच्छा लगा है तो निश्चित रूप से आपको ये EBook भी अच्छी व उपयोगी लगेगी।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Advance ASP.NET WebForms with C# in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Advance ASP.NET WebForms in Hindi | Page:707 | Format: PDF