Insert, Update, Delete: ASP.NET Database Connection

Database से data access करना किसी भी programming भाषा का एक महत्वपूर्ण पहलू है। किसी भी programming भाषा के लिए Database के साथ काम करने की क्षमता होना आवश्यक है। ASP.Net विभिन्न प्रकार के Database के साथ काम करने की क्षमता रखता है। यह Oracle और Microsoft SQL server जैसे सबसे सामान्य Database के साथ काम कर सकता है।

यह नए प्रकार के Database जैसे MongoDB और MySQL के साथ काम करने की क्षमता भी रखता है।

Database connectivity का fundamental ASP.Net में अधिकांश Database के साथ काम करने की क्षमता है। oracle और Microsoft SQL server सबसे आम Database है। लेकिन हर database के साथ काम करने के पीछे का logic ज्यादातर एक ही है।

नीचे दिए गए उदाहरण में, हम Microsoft SQL server के साथ database के रूप में काम कर रहे हैं।

सीखने के उद्देश्य से , Microsoft SQL Server Express Edition को डाउनलोड और उपयोग किया जा सकता है। यह Microsoft द्वारा प्रदान किया गया एक निःशुल्क database software है।

Database के साथ काम करते समय, निम्नलिखित अवधारणाएं जो सभी database के लिए आम हैं |

Data Connection

एक database में data के साथ काम करने के लिए, पहला step connection है , एक database से connection सामान्य रूप से नीचे उल्लेखित parameters से बना होता है ।


  • Database name या Data Source :- पहला महत्वपूर्ण parameter database का नाम है। प्रत्येक कनेक्शन एक समय में केवल एक डेटाबेस के साथ काम कर सकता है ।
  • Credentials – अगला महत्वपूर्ण पहलू ‘ username’ और ‘password’ है। इसका उपयोग database से connection स्थापित करने के लिए किया जाता है ।
  • Optional parameters – आप वैकल्पिक मापदंडों(optional parameters) को enter कर सकते हैं कि कैसे .NET database से connection को संभालना चाहिए। उदाहरण के लिए, कोई parameter निर्दिष्ट कर सकता है कि connection कितने समय तक सक्रिय (active) रहना चाहिए ।

Database से data का चयन करना :-

connection स्थापित होने के बाद, data database से प्राप्त किया जाता है। ASP.Net database के विरुद्ध ‘sql’ चुनिंदा command को निष्पादित (execute) करने की क्षमता रखता है। database में एक विशिष्ट तालिका से data लाने के लिए ‘sql’ statement का उपयोग किया जा सकता है ।

Database में data सम्मिलित करना :-

Database में record डालने के लिए ASP.Net का उपयोग किया जाता है। टेबल में डाली जाने वाली प्रत्येक पंक्ति की value ASP.Net में निर्दिष्ट की गई हैं ।

Database में data update करना

ASP.Net का उपयोग टेबल में मौजूदा record को update करने के लिए भी किया जा सकता है। Database में update करने के लिए आवश्यक प्रत्येक पंक्ति के लिए ASP.Net में नये मान निर्दिष्ट किए जा सकते हैं ।

Database से data हटाना :-

ASP.Net का उपयोग टेबल से record हटाने के लिए भी किया जा सकता है। Database की किसी भी टेबल से किसी विशेष पंक्ति को हटाने के लिए code लिखा जाता है।

अब जब हमने प्रत्येक operation की theory को देखा है। अब, देखते हैं कि ASP.Net में database से सम्बंधित Operation कैसे करें।


ASP.NET Database Connections

आइए अब उस code को देखें, जिसे database से connection बनाने के लिए लिखा जाना चाहिए। हमारे उदाहरण में, हम एक डेटाबेस से connect करेंगे जिसका नाम Demodb है। database से जुड़ने के लिए इस्तेमाल की जाने वाली credentials नीचे दी गई है –


Username – sa
Password – demo123

नीचे दिया गया उदाहरण एक साधारण connection स्थापित करने के बारे में बताता है। यह connection Demodb database से बना है। यह तब किया जाता है जब page पहली बार launch किया जाता है।
जब connection स्थापित हो जाता है, तो उपयोगकर्ता को एक message भेजा जाएगा। message बताता है कि connection स्थापित किया गया है। आइए इसे प्राप्त करने के लिए नीचे दिए गए steps का उपयोग करें।

STEP – 1

सबसे पहले यह सुनिश्चित करें कि आपके पास Visual Studio में अपना web application (DemoApplication) open किया गया है। database connection के लिए code दर्ज करने के लिए ‘Demo.aspx.cs’ file पर double click करें ।

STEP – 2

Asp.Net में database record enter, update और delete करें |

namespace DemoApplication
{ 
public partial class Demo System.Web.UI.Page 
{ 
protected void Page_Load(object sender, EventArgs e) 
{ 
string connetionString;
SqlConnection cnn;
connetionString = @"Data Source=WIN-50GP30FGO75;Initial Catalog=Demodb ;User ID=sa;Password=demol23";
cnn = new SqlConnection(connetionString);
cnn.Open(); 
Response.Write("Connection MAde"); 
conn.Close(); 
}
}
}

code स्पष्टीकरण :-

1. पहला step variables बनाना है। इसका उपयोग connection string और SQL Server database से connection बनाने के लिए किया जाएगा ।

2. अगला step वास्तव में connection string बनाना है। connection string में निम्नलिखित भाग होते हैं |

  • Data Source – यह उस server का नाम है जिस पर database रहता है। हमारे मामले में, यह WIN- 50GP30FGO75 नामक machine पर रहता है।
  • Database का नाम निर्दिष्ट करने के लिए प्रारंभिक कैटलॉग का उपयोग किया जाता है |
  • UserID और Password database से जुड़ने के लिए आवश्यक credentials हैं।

3. अगला, हम connecting string को variable ‘cnn’ में assign करते हैं ।

  • variable cnn , SqlConnection type का है । इसका उपयोग database से connection स्थापित करने के लिए किया जाता है।
  • SqlConnection ASP.Net में एक class है, जिसका उपयोग किसी Database से connection बनाने के लिए किया जाता है ।
  • इस class का उपयोग करने के लिए, आपको पहले इस class का एक object बनाना होगा। इसलिए, यहाँ हम ‘cnn’ नामक एक variable बनाते हैं जो SqlConnection type का है ।

4. हम database से connection खोलने के लिए cnn variable की open method का उपयोग करते हैं। हम उपयोगकर्ता को एक संदेश प्रदर्शित करते हैं कि कनेक्शन स्थापित है। यह ‘response.write’ method के माध्यम से किया जाता है इसके बाद हम तब database connection बंद कर देते हैं ।

जब उपरोक्त code set हो जाता है, और प्रोजेक्ट को Visual Studio का उपयोग करके निष्पादित(execute) किया जाता है तो आपको नीचे की ओर आउटपुट मिलेगा। form प्रदर्शित होने के बाद, connect button पर click करें ।

Output:-

browser में आउटपुट संदेश प्रदर्शित होगा कि database से connection बनाया गया है ।

ASP.NET SqlDataReader उपयोग करके database को read करना :-

Asp.Net का उपयोग करके access किए गए dataका को दिखाने के लिए, हम अपने database में निम्नलिखित artifacts को assume करते हैं :-

  1. एक table जिसे demotb कहा जाता है। इस table का उपयोग विभिन्न ट्यूटोरियल की ID और names को store करने के लिए किया जाएगा ।
  2. Table में दो column होंगे, एक को ” TutorialID ” और दूसरे को ” TutorialName ” कहा जाता है ।
  3. फिलहाल, Table में दो पंक्तियाँ (rows) होंगी जैसा कि नीचे दिखाया गया है ।
TutorialID TutorialName
1 C#
2 ASP.Net

आइए code बदलते हैं ताकि हम इस data के लिए carry कर सकें और web page पर ही जानकारी प्रदर्शित कर सकें।

Step 1

Code को दो भागों में बांटते है|

  • पहला भाग में हमारे “select” statement का निर्माण होगा। इसका उपयोग database से data read करने के लिए किया जाएगा ।
  • इसके बाद हम database के “select ” statement को निष्पादित (execute) करेंगे। यह तदनुसार सभी table rows को fetch करेगा |

Code Explanation :-

1. पहला step variable बनाना है –

  • SQLCommand :- ‘SQLCommand’ C # के भीतर परिभाषित एक class है। इस class का उपयोग database में reading और writing जैसे operations के संचालन के लिए किया जाता है। इसलिए, पहला step यह सुनिश्चित करना है कि हम इस class का एक variable बनाते हैं। यह variable database से data को पढ़ने के बाद के steps में उपयोग किया जाएगा।
  • DataReader object का उपयोग SQL query द्वारा निर्दिष्ट सभी data को प्राप्त करने के लिए किया जाता है। हम data reader का उपयोग करके एक-एक करके table की सभी rows को पढ़ सकते हैं ।
  • अब हम दो string variable को परिभाषित करते हैं। SQL command string को hold करने के लिए एक “SQL” है। अगला “output” है जिसमें table की सभी values होंगी |

2. अगला step SQL statement को परिभाषित करना है। हमारे case में, यह ” demotb से Select TutorialID, TutorialName ” है। यह table demotb से सभी rows को fetch करेगा ।

3. अब , हम command object बनाते हैं जो डेटाबेस के SQL स्टेटमेंट को निष्पादित(execute) करने के लिए उपयोग किया जाता है। SQL command में, आपको connection object और SQL string को pass करना होगा ।

4. इसके बाद, हम data reader command को निष्पादित (execute) करेंगे, जो demotb table से सभी rows को fetch करेगा ।

5. अब जब हमारे पास table की सभी rows हैं, तो हमें एक-एक करके rows को access करने के लिए एक mechanism की आवश्यकता है ।

  • इसके लिए हम ‘while’ statement का उपयोग करेंगे।
  • ‘while’ statement का उपयोग data reader से rows को एक बार में access करने के लिए किया जाएगा |
  • तब हम TutorialID और TutorialName की value प्राप्त करने के लिए ‘GetValue’ method का उपयोग करते हैं ।

Step 2

अंतिम चरण में, हम user को केवल output प्रदर्शित करेंगे । फिर हम database operation से संबंधित सभी objects को close कर देंगे |

namespace DemoApplication
{ 
public partial class Demo System.Web.UI.Page 
{ 
protected void Page_Load(object sender, EventArgs e) 
{ 
SqlCommand command;
SqlDataReader dataReader;
String sql, Output =" ";
sql = "Select TutorialID,TutorialName from demotb";

command = new SqlCommand(sql, cnn);

dataReader = sqlquery.ExecuteReader();
while (dataReader.Read())
{
Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>";
}

Response.Write(Output); 
dataReader.Close();
command.dispose();
conn.Close(); 

}
}
}

Code स्पष्टीकरण:-

  • हम Output variable की value प्रदर्शित करके अपना कोड जारी रखेंगे। यह Response.Write method का उपयोग करके किया जाता है।
  • हम अंत में अपने database operation से संबंधित सभी objects को close कर देते हैं।

जब उपरोक्त code सेट हो जाता है, और project visual studio का उपयोग करके चलाया जाता है, तो आपको नीचे यह output मिलेगा ।

Output:-

output से, आप स्पष्ट रूप से देख सकते हैं कि program database से value प्राप्त करने में सक्षम था । फिर उपयोगकर्ता के लिए data को browser में प्रदर्शित किया जाता है।

InsertCommand का उपयोग करते हुए database में record को insert करना :-

Data accessing की तरह, ASP.Net database में भी record को insert की क्षमता रखता है। आइए records को insert करने के लिए उपयोग की जाने वाली समान टेबल संरचना(table structure) को लेते हैं।

TutorialID TutorialName
1 C#
2 ASP.Net

अब code को हम एक और form में बदलते , ताकि हम निम्नलिखित row को table में सम्मिलित कर सकें –

TutorialID TutorialName
3 VB.Net

Step 1

पहले step के रूप में, program में निम्नलिखित code जोड़ें। database में मौजूदा record को हटाने के लिए नीचे दिए गए code snippet का उपयोग किया जाएगा ।

namespace DemoApplication
{ 
public partial class Demo System.Web.UI.Page 
{ 
protected void Page_Load(object sender, EventArgs e) 
{ 
SqlCommand command;
SqlDataAdapter adapter = new SqlDataAdapter(); 
String sql="";
sql = "Delete demotb where TutorialID=3";

command = new SqlCommand(sql,cnn);

adapter.DeleteCommand = new SqlCommand(sql,cnn); 
adapter.DeleteCommand.ExecuteNonQuery;

command.Dispose(): 
cnn.Close();

}
}
}

Code स्पष्टीकरण :-

  1. इस code में मुख्य अंतर यह है कि delete statement का उपयोग demotb table में उस row को हटाने के लिए किया जाता है जिसमें TutorialID की value 3 होता है ।
  2. data adapter command में, अब हम SQL command को अपने adapter में जोड़ते हैं। हम ‘ExecuteNonQuery’ method भी जारी करते हैं जिसका उपयोग हमारे database के delete statement को निष्पादित(execute) करने के लिए किया जाता है।

Step 2

दूसरे step के रूप में, उसी code को access करने वाले data section से add करे । यह browser में हाल के टेबल डेटा (recent table data ) को प्रदर्शित करता है। उसके लिए, हम नीचे दिए गए code को जोड़ देंगे ।

namespace DemoApplication
{ 
public partial class Demo System.Web.UI.Page 
{ 
protected void Page_Load(object sender, EventArgs e) 
{ 
SqlCommand sqlquery;
SqlDataReader dataReader;
String Output ="";
sql = "Select TutorialID,TutorialName from demotb";

sqlquery = new SqlCommand(sql, cnn);

dataReader = command.ExecuteReader();

while(dataReader.Read())
{
Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>";
}

Response.Write(Output); 
dataReader.Close();
command.dispose();
conn.Close(); 
}
}
}

जब ऊपर लिखा गया code set हो जायेगा और visual studio की सहायता से project को execute किया जायेगा तब निम्नानुसार output प्राप्त होगी |

Output :-

Asp.net control को data से connect करना :-

हमने देखा कि कैसे हम एक database से data लाने के लिए ASP.Net command जैसे SQLCommand और SQLReader का उपयोग कर सकते हैं। हमने यह भी देखा कि कैसे हम web page पर table की प्रत्येक row को प्रदर्शित कर सकते हैं।

Controls को table की विभिन्न fields से सीधे link करने के लिए कई methods उपलब्ध हैं। फिलहाल, केवल नीचे दिए गए control ASP.Net application के लिए बाध्य(bound) हो सकते हैं |

  1. CheckboxList
  2. RadioButtonList
  3. DropDownlist
  4. Listbox

आइए एक उदाहरण देखते हैं जिसमे हम देखेगे कि ASP.Net में control binding का उपयोग कैसे कर सकते हैं। यहां हम एक listbox का उदाहरण लेंगे ।

मान लें कि हमारे database में निम्नलिखित data हैं।

TutorialID TutorialName
1 C#
2 ASP.Net
3 VB.Net complete

आइए listbox control का उपयोग करें और देखें कि यह हमारे Demotb table से automatically data कैसे उठा सकते है।

इसे प्राप्त करने के लिए नीचे दिए गए steps का पालन करें :-

Step 1

Basic web form का निर्माण करें। Visual Studio में toolbox से, 2 components – labels और Listboxes को drag and drop करे । फिर निम्नलिखित substeps को follow करे-

TutorialID के रूप में पहले label की text value enter करे |

दूसरे label की text value को TutorialName के रूप में enter करे |

steps का पालन करने के बाद form इस तरह दिखाई देगा |

Step 2

अगले step में database table में listbox को जोड़ना है ।

  1. सबसे पहले, Tutorial ID के लिए Listbox पर click करें। यह control के side एक dialog box लाएगा।
  2. Dialog box से, हमें Choose Data source के option पर click करने की आवश्यकता है।

Step 3

फिर आपको एक Dialog box के साथ present किया जाएगा। इसका उपयोग एक नया data source बनाने के लिए किया जा सकता है। data source database से connection का प्रतिनिधित्व करेगा। ‘ New data source ‘ का option चुनें ।

Step 4

अंतिम step में new data source चुनने के बाद नीचे दी गई screen को संकेत दिया जाएगा। यहां हमें उस data source के प्रकार का उल्लेख करना होगा जिसे हम बनाना चाहते हैं।

  1. SQL Server database के साथ काम करने के लिए database option चुनें ।
  2. अब हमें अपने data source को एक नाम देने की आवश्यकता है। यहां हम इसे DemoDataSource का नाम दे रहे हैं।
  3. अंत में, हम अगली screen पर आगे बढ़ने के लिए ‘OK’ button पर click करते हैं ।

Step 5

अब हमें अपने database से connection बनाने की आवश्यकता है। अगली स्क्रीन में, New Connection button पर click करें |

Step 6

आगे आपको database से जुड़ने के लिए credentials जोड़ने की आवश्यकता है ।

  1. Server नाम चुने जिस पर SQL सर्वर रहता है |
  2. database से connect करने के लिए user id और password डालें |
  3. Database को ‘demotb’ के रूप में चुनें |
  4. ‘OK ‘ button पर click करें ।

Step 7

अगली screen पर, आप Demotb table देख पाएंगे। default setting को स्वीकार करने के लिए बस next button पर click करें।

Step 8

अब आप अगली screen पर connection का परीक्षण कर पाएंगे ।

  1. Test Query button पर click करके देखें कि क्या आप table से value प्राप्त करने में सक्षम हैं
  2. Wizard को पूरा करने के लिए Finish button पर click करें ।

Step 9

अब आप final screen पर, ‘ok’ button पर click कर सकते हैं। यह अब TutorialID listbox को ‘demotb’ table में TutorialID field name से bind कर देगा।

Step 10

अब यह Tutorial Name field के लिए Tutorial Name listbox से bind करने का समय है ।

  1. सबसे पहले, Tutorial Name Listbox पर click करें।
  2. अब, dialog box में data source चुनें जो Listbox के side में दिखाई देता है।

Step 11

अगली screen में Data Source का चयन करते समय आपको पहले से ही DemoDataSource दिखाई देगा ।

  1. DemoDataSource चुनें
  2. ‘OK’ button पर click करें।


error: Content is protected !!