Record Deleting in ASP.NET Project – किसी Record को Delete करना उसे Update करने के समान ही होता है और हमें लगभग सभी Steps को समान प्रकार से ही Follow करना होता है, जिन्हें हमने Record को Update करते समय Follow किया था।
यानी सबसे पहले हम एक SqlDataSource Control Create करते हैं, और उसके DeleteCommand को Specify करते हैं, जो कि वास्तव में DeleteQuery Property में Specified एक DELETE SQL Statement होता है। जबकि पिछले Section में Discuss किए अनुसार हम Concurrency Issue से बचने के लिए ConflictDetection Property को CompareAllValues Property से भी Set कर सकते हैं।
इस Record Deleting के Concept को समझने के लिए भी हम पिछले Example की तरह ही एक Example Create कर सकते हैं, जिसमें हम सबसे पहले एक SqlDataSource Control को अपने Webpage पर Place करते हैं और उसकी निम्न Properties को Set करते हैं:
Property | Value |
ID | sourceProducts |
ConnectionString | Northwind(Data Source=.;Initial Catalog=Northwind;Integrated Security=True) |
SelectCommandType | Text |
SelectQuery | SELECT * FROM Products |
ये Properties हमारे SqlDataSource Control को Products Table के Records को Render करने के लिए तो उपयोगी है, लेकिन यदि हम अपने SqlDataSource Control द्वारा Records को Update भी करना चाहें, तो हमें निम्नानुसार UpdateCommandType व UpdateQuery Properties को भी Set करना होगा, जैसाकि पिछले Example में किया था:
Property | Value |
UpdateCommandType | Text |
UpdateQuery | UPDATE Products SET ProductName = @ProductName, SupplierID = @SupplierID, CategoryID = @CategoryID, QuantityPerUnit = @QuantityPerUnit, UnitPrice = @UnitPrice, UnitsInStock = @UnitsInStock, UnitsOnOrder = @UnitsOnOrder, ReorderLevel = @ReorderLevel, Discontinued = @Discontinued WHERE ProductID = @ProductID |
लेकिन साथ ही हम अपने किसी Rendered Record को Delete करने की क्षमता भी प्राप्त करना चाहते हैं, इसलिए हमें DeleteCommandType व DeleteQuery Properties को भी निम्नानुसार Specify करना होता है:
Property | Value |
DeleteCommandType | Text |
DeleteQuery | DELETE Products WHERE ProductID = @ProductID |
जब एक बार हम हमारे SqlDataSource Control के लिए उपरोक्तानुसार DeleteCommandType व DeleteQuery Properties को Set कर देते हैं, उसके बाद जब हम अपने GridView Control के Popup को देखते हैं, तो उसमें निम्न चित्रानुसार “Enable Deleting” नाम का नया Checkbox भी Add हो चुका होता है, जिसे Check करते ही हमारे GridView Control में हर Record की शुरूआत में “Edit” के साथ ही “Delete” नाम का Hyperlink भी Render होने लगता है:
परिणामस्वरूप इस बार जब हम हमारे Webpage को Run करते हैं, तो हमें हमारा Resultant Output निम्नानुसार दिखाई देता है:
जब हम किसी Record को Delete करना चाहते हैं, तब हमें इस बात का भी ध्यान रखना जरूरी होता है कि Delete किए जाने वाले Record से Associated कोई Master या Detail Record न हो यानी Delete किया जाने वाला Record किसी अन्य Record के साथ Referential Integrity में न हो, अन्यथा Underlying Database Delete Operation को Reject कर देता है।
इसलिए बेहतर यही होता है कि पिछले Section में Insert किए गए Record को ही इस Webpage द्वारा Delete करने की कोशिश करनी चाहिए, क्योंकि यदि हम Northwind Table के किसी अन्य Product को Delete करने की कोशिश करेंगे, तो हमें Error Face करना पडेगा।
जब हम हमारे इस Example के लिए Visual Studio द्वारा Generate किए गए Markups को देखते हैं, तो ये कुछ निम्नानुसार होता है:
File Name: RecordUpdating.asxp
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DataUpdating.aspx.cs" Inherits="DataUpdate.DataUpdating" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:SqlDataSource ID="sourceProducts" runat="server" ConnectionString="<%$ ConnectionStrings:Northwind %>" SelectCommand="SELECT * FROM Products" UpdateCommand=" UPDATE Products SET ProductName = @ProductName, SupplierID = @SupplierID, CategoryID = @CategoryID, QuantityPerUnit = @QuantityPerUnit, UnitPrice = @UnitPrice, UnitsInStock = @UnitsInStock, UnitsOnOrder = @UnitsOnOrder, ReorderLevel = @ReorderLevel, Discontinued = @Discontinued WHERE ProductID = @ProductID AND ProductName = @original_ProductName AND SupplierID = @original_SupplierID AND CategoryID = @original_CategoryID AND QuantityPerUnit = @original_QuantityPerUnit AND UnitPrice = @original_UnitPrice AND UnitsInStock = @original_UnitsInStock AND UnitsOnOrder = @original_UnitsOnOrder AND ReorderLevel = @original_ReorderLevel AND Discontinued = @original_Discontinued" ConflictDetection="CompareAllValues" OldValuesParameterFormatString="original_{0}" DeleteCommand= "DELETE FROM Products WHERE ProductID = @original_ProductID" ></asp:SqlDataSource> <br /> <asp:GridView ID="GridView1" runat="server" DataSourceID="sourceProducts" AutoGenerateColumns="False" AutoGenerateDeleteButton="True" AutoGenerateEditButton="True" DataKeyNames="ProductID" > <Columns> <asp:BoundField DataField="ProductID" HeaderText="ProductID" ReadOnly="True" SortExpression="ProductID" InsertVisible="False" /> <asp:BoundField DataField="ProductName" HeaderText="ProductName" SortExpression="ProductName" /> <asp:BoundField DataField="SupplierID" HeaderText="SupplierID" SortExpression="SupplierID" /> <asp:BoundField DataField="CategoryID" HeaderText="CategoryID" SortExpression="CategoryID" /> <asp:BoundField DataField="QuantityPerUnit" HeaderText="QuantityPerUnit" SortExpression="QuantityPerUnit" /> <asp:BoundField DataField="UnitPrice" HeaderText="UnitPrice" SortExpression="UnitPrice" /> <asp:BoundField DataField="UnitsInStock" HeaderText="UnitsInStock" SortExpression="UnitsInStock" /> <asp:BoundField DataField="UnitsOnOrder" HeaderText="UnitsOnOrder" SortExpression="UnitsOnOrder" /> <asp:BoundField DataField="ReorderLevel" HeaderText="ReorderLevel" SortExpression="ReorderLevel" /> <asp:CheckBoxField DataField="Discontinued" HeaderText="Discontinued" SortExpression="Discontinued" /> </Columns> </asp:GridView> </div> </form> </body> </html>
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Advance ASP.NET WebForms with C# in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Advance ASP.NET WebForms in Hindi | Page:707 | Format: PDF