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 !!