Reading Data from Databases DataReader c# In Hindi
C# प्रोग्रामिंग लैंग्वेज में ADO.NET फ्रेमवर्क में SqlDataReader फंक्शन मेथड से डिजायर डेटाबेस से डेटा रीड और एक्सेस करने का एक बेस्ट और फ़ास्ट मेथड है। SqlDataReader मेथड C# यूजर को मौजूदा डेटाबेस से डेटा को सिर्फ़ फ़ॉरवर्ड-ओनली, रीड-ओनली मेथड से एक्सट्रेक्ट करने में हेल्प करता है. इसका अर्थ है कि C# यूजर रिज़ल्ट सेट में सिर्फ़ आगे की और मूव हो सकते हैं, और एक बार डेटाबेस से डेटा फाइंड या रिट्रीव होने के बाद उसे मॉडिफाई नहीं कर सकते है।

So, let’s explore the SqlDataReader database extraction method in C# programming.
Some Special Advanced Features of the SqlDataReader.
- Forward-only – इसमें C# यूजर डेटा में सिर्फ़ एक ही डायरेक्शन टॉप टू बॉटम मूव कर सकते हैं।
- Read-only – इसमें C# यूजर फाइल से डेटा को रीड करते समय उसे अपडेट नहीं कर सकते है।
- Benefits – यह फंक्शन डेटाबेस में एक मेमोरी-एफ़िशिएंट फीचर्स है. क्योंकि यह C# यूजर के लिए मौजूदा डेटाबेस से डेटा को रो-बाय-रो एक्सट्रेक्ट कर डिस्प्ले करता है, और सारा डेटाबेस डेटा एक साथ ही मेमोरी में लोड नहीं करता है।
Steps to use the SqlDataReader method in C#.
- सबसे पहले एक डेटाबेस टेबल डाटा के लिए एक SqlConnection क्रिएट करे।
- SQL डेटाबेस कमांड स्टेटमेंट क्वेरी के साथ एक SqlCommand क्रिएट करे।
- ExecuteReader() फंक्शन मेथड का यूज़ करके sql कमांड को एक्ज़ीक्यूट करें।
- डेटाबेस डेटा को रो-बाय-रो रीड करने के लिए SqlDataReader फंक्शन मेथड का यूज़ करें।
Example of reading data using the SqlDataReader method in C#.
यहाँ आपको एक SQL Server डेटाबेस मैनेजमेंट सिस्टम से डेटाबेस डेटा रीड करने के लिए SqlDataReader फंक्शन मेथड यूज़ करने का एक कम्पलीट एक्साम्प्ल दिया गया है.
using System;
using System.Data.SqlClient;
class Program
{
static void Main()
{
// here we Connection string
string connectionString = “Data Source=ServerName;Initial Catalog=DatabaseName;Integrated Security=True”;
// here we define employee table SQL query
string query = “SELECT Id, Name, Age FROM Employee”;
// here we Create a SqlConnection object
using (SqlConnection conn = new SqlConnection(connectionString))
{
// here we Open the connection
conn.Open();
// here we Create the SqlCommand object to execute the query
SqlCommand command = new SqlCommand(query, conn);
// here we Execute the query and get a SqlDataReader method
SqlDataReader reader = command.ExecuteReader();
// here it Read the data using the SqlDataReader sql function method
while (reader.Read()) // here it Read data each row
{
// here it Access each column using column names or indexes
int id = reader.GetInt32(0); // here it Get employee Id (first column) data
string name = reader.GetString(1); // here it Get employee Name (second column) data
int age = reader.GetInt32(2); // here it Get employee Age (third column) data
// here it finally Display the employee database table data
Console.WriteLine($”Id: {id}, Name: {name}, Age: {age}”);
}
// here we Close the reader method and its connection
reader.Close();
}
}
}
SqlDataReader method example explanation.
- SqlConnection – यहाँ इस प्रोग्राम में दिए गए डेटाबेस कनेक्शन के लिए एक स्ट्रिंग का यूज़ करके डेटाबेस से कनेक्शन क्रिएट किया जाता है।
- Data Source – यह डेटाबेस डाटा से कनेक्ट करने के लिए सर्वर लोकेशन को लोकेट करता है।
- Initial Catalog – इसका यूज़ करके डेटाबेस रिप्रेजेंट या इंडीकेट किया जाता है।
- Integrated Security – यह मौजूदा डाटा डेटाबेस से कनेक्ट करने के लिए विंडोज ऑथेंटिकेशन प्रिंसिपल को फॉलो करता है।
- SqlCommand – यह SQL क्वेरी SELECT कमांड स्टेटमेंट को डिस्प्ले करता है, जिसे मौजूदा डेटाबेस डाटा टेबल रौ एक्सट्रैक्शन के लिए एग्जीक्यूट किया जाएगा।
SqlDataReader Function/Method Role.
डेटाबेस टेबल में डाटा SqlCommand ऑब्जेक्ट का ExecuteReader() फंक्शन या मेथड क्वेरी को एग्जीक्यूट करने और SqlDataReader ऑब्जेक्ट को रिट्रीव करने के लिए यूज़ किया जाता है।
डेटाबेस डाटा के लिए SqlDataReader रिजल्ट सेट से रो-बाय-रो आर्डर में डेटा रीड करने का एक बेस्ट और इजी मेथड प्रोवाइड करता है।
डाटा में Read() मेथड कर्सर को रिजल्ट आउटपुट सेट में नेक्स्ट रिकॉर्ड पर मूव करता है। यदि इसमें और डाटा रो हैं, तो यह true को रिप्रेजेंट करता है, और जब मौजूदा डाटा में रीड करने के लिए और डाटा रो नहीं हैं, तो यह false को रिप्रेजेंट करता है।
Accessing the Required Data from the Database.
C# यूजर डेटाबेस कनेक्शन में GetInt32() और GetString() फंक्शन मेथड का यूज़ करके डाटा कॉलम से उनके इंडेक्स (0-बेस्ड) के अकॉर्डिंग डेटा को एक्सट्रेक्ट करने में कर सकते है। इसके साथ ही, C# यूजर नाम से डेटाबेस टेबल डाटा कॉलम एक्सेस करने के लिए reader[“ColumnName”] मेथड ब्लॉक का भी यूज़ कर सकते हैं।
Closing the DataReader and the connection to the database.
- डेटाबेस में डाटा कनेक्शन को SqlDataReader को क्लोज करने के लिए डेटाबेस डेटा रीड करने के बाद reader.Close() फंक्शन मेथड को कॉल किया जाता है।
- इसके बाद SqlConnection अपने आप क्लोज हो जाता है, जब इसे using ब्लॉक के अंत में डिस्पोज़ किया जाता है।
Using the SqlDataReader with the GetValue() function method.
जब डेटाबेस यूजर को टेबल डेटा टाइप या कॉलम इंडेक्स के बारे में क्लियर पता न हो, तो C# यूजर डेटा रिट्रीव करने के लिए GetValue() फंक्शन मेथड का भी यूज़ कर सकते हैं।
while (reader.Read())
{
// This dynamically retrieves data from any database data table column
var info = reader.GetInfo(0); // This will return data from the first column in the current database
Console.WriteLine(info);
}
यहाँ यह स्टेप तब यूज़ किया जाता है, जब C# यूजर कई डेटा टाइप को हैंडल या मैनेज कर रहे हों या कॉलम को जेनेरिकली हैंडल करना चाहते हों।
Handling Null Values with SqlDataReader.
कई बार डेटाबेस टेबल डाटा में क्वेरी से रिसीव डेटा में NULL वैल्यू जनरेट हो सकती हैं। SqlDataReader डेटा में NULL वैल्यू को चेक करने के लिए IsDBNull() फंक्शन मेथड नाम का एक मेथड प्रोवाइड करता है।
Handling Null Values with SqlDataReader Example.
while (reader.Read())
{
int emp_id = reader.GetInt32(0);
string emp_name = reader.IsDBNull(1) ? “Random” : reader.GetString(1); // here it Check for NULL value in the second column
int emp_age = reader.IsDBNull(2) ? 0 : reader.GetInt32(2); // here it Check for NULL in the third table column
Console.WriteLine($”Employee Id – {emp_id}, Employee Name – {emp_name}, Employee Age – {emp_age}”);
}
Handling Null Values with SqlDataReader explanation.
- यदि यहाँ इंडीकेट किए गए टेबल इंडेक्स पर कॉलम NULL वैल्यू है, तो IsDBNull(int ordinal) फंक्शन true वैल्यू को रिटर्न करता है। यदि यहाँ वैल्यू NULL है. तो आप यहाँ एक डिफ़ॉल्ट वैल्यू प्रोवाइड कर सकते हैं, या उसे उसी हिसाब से हैंडल या मैनेज कर सकते हैं।
Efficiently handling or controlling large result data sets.
यदि C# यूजर बड़े रिज़ल्ट डेटाबेस डाटा सेट को डील कर रहे हैं, और अपने सिस्टम सर्वर पर मेमोरी की खपत कम करना चाहते हैं. तो आपके लिए SqlDataReader एक अच्छा चॉइस है. क्योंकि यह डेटाबेस में डेटा को रो-बाय-रो रीड करता है। जिसमे, यदि C# यूजर को काम्प्लेक्स डेटाबेस ऑपरेशन परफॉर्म करने हैं, या डेटाबेस डेटा को ज़्यादा समय तक होल्ड या स्टोर करना है. तो C# यूजर आगे के मैनिपुलेशन के लिए डेटा को DataTable या DataSet में लोड करना चुन सकते हैं।
यदि C# यूजर को डेटाबेस डाटा डिस्प्ले रिट्रीव रिज़ल्ट को चंक्स में प्रोसेस करने की ज़रूरत है. तो आपके द्वारा SQL क्वेरी में पेजिंग का यूज़ करने के बारे में सोचें या C# यूजर डेटा को धीरे-धीरे लोड कर सकते हैं।
Data Error Handling with SqlDataReader.
डेटाबेस टेबल में डेटा को रीड करते समय जनरेट या डिस्प्ले होने वाले किसी भी एरर को हैंडल या मैनेज करना एसेंशियल टास्क है. स्पेशली, उन कंडीशन या यूज़ केस में जहां डेटाबेस डेटा एक्सपेक्टेड फ़ॉर्मेट में न हो, या डेटाबेस डाटा कनेक्शन इस्टैब्लिशमेंट इश्यूज हों।
Example of SqlDataReader error handling.
try
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
SqlCommand command = new SqlCommand(query, conn);
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
try
{
// here it Handle each row of database table data
int emp_id = reader.GetInt32(0);
string emp_name = reader.GetString(1);
Console.WriteLine($”Employee Id – {emp_id}, Employee Name – {emp_name}”);
}
catch (Exception excption)
{
Console.WriteLine(“Display Error reading table row – ” + excption.Message);
}
}
}
}
catch (Exception excption)
{
Console.WriteLine(“Display Error with database connection – ” + excption.Message);
}
SqlDataReader error handling explanation.
- यहाँ इस प्रोग्राम में try-catch ब्लॉक यह फिक्स करता है कि कोई भी प्रोग्राम डेटाबेस एक्सेप्शन (चाहे डेटाबेस कनेक्शन इस्टैब्लिशमेंट इश्यूज हों या डेटाबेस टेबल डाटा से रो रीड करने में एरर) अच्छे से ट्राय और कैच ब्लॉक का यूज़ कर इसे हैंडल और मैनेज किया जा सकता है।
Reading Data from Databases DataReader Method Summary.
- SqlDataReader फंक्शन यह ADO.NET में डेटाबेस से डेटा रीड करने का एक पावरफ़ुल और एफ़िशिएंट मेथड है।
- यह डेटाबेस डेटा तक फ़ॉरवर्ड-ओनली, रीड-ओनली डाटा एक्सेस को मैनेज और कण्ट्रोल करता है, इस वजह से यह उन पर्टिकुलर सिचुएशन के लिए बेस्ट चॉइस है. जहाँ C# यूजर को ज़्यादा मेमोरी यूज़ किए बिना लार्ज वॉल्यूम में डेटाबेस डेटा को प्रोसेस और हैंडल करने की आवश्यकता होती है।
- हमेशा अपने सिस्टम में यह फिक्स करें कि किसी भी प्रकार के डाटा रिसोर्स लीक को अवॉयड करने के लिए इसे यूज़ करने के बाद SqlDataReader प्रॉपर क्लोज होना चाहिए, जो सामान्य रूप से using स्टेटमेंट का यूज़ करके किया जाता है।
- डेटाबेस डाटा में NULL वैल्यू और किसी भी प्रकार के प्रोग्राम एक्सेप्शन को प्रॉपर आर्डर में हैंडल करने से यह तय होता है कि आपका एप्लिकेशन एक स्ट्रांग, कम्पलीट एरर-फ़्री, रिलाएबल, और फ़ास्ट है।
