Mega Code Archive

 
Categories / ASP.Net Tutorial / ADO Net Database
 

DataRow States and DataRow Versions

File: App_Code\Product.cs using System; using System.Data; using System.Data.SqlClient; using System.Web; using System.Web.Configuration; public class Product {     private SqlDataAdapter dad = new SqlDataAdapter();     public DataTable GetAll()     {         return (DataTable)HttpContext.Current.Session["ProductsToEdit"];     }     public void Update(int id, string title, string director)     {         DataTable products = (DataTable)HttpContext.Current.Session["ProductstoEdit"];         DataRow rowToEdit = products.Rows.Find(id);         rowToEdit["title"] = title;         rowToEdit["director"] = director;     }     public void RejectChanges()     {         DataTable products = (DataTable)HttpContext.Current.Session["ProductstoEdit"];         products.RejectChanges();     }     public void AcceptChanges()     {         DataTable products = (DataTable)HttpContext.Current.Session["ProductstoEdit"];         dad.Update(products);         products.AcceptChanges();    }     public Product()     {         string connectionString = WebConfigurationManager.ConnectionStrings["Products"].ConnectionString;         dad = new SqlDataAdapter("SELECT Id,Title,Director FROM Products", connectionString);         SqlCommandBuilder builder = new SqlCommandBuilder(dad);         dad.UpdateBatchSize = 0;         HttpContext context = HttpContext.Current;         if (context.Session["ProductsToEdit"] == null)         {             DataTable dtblProducts = new DataTable();             dad.Fill(dtblProducts);             dtblProducts.PrimaryKey = new DataColumn[] { dtblProducts.Columns["Id"] };             context.Session["ProductsToEdit"] = dtblProducts;         }     } } File: Web.config <configuration>   <connectionStrings>     <add name="Products"           connectionString="Data Source=.\SQLEXPRESS;          AttachDbFilename=|DataDirectory|MyDatabase.mdf;Integrated Security=True;User Instance=True" />   </connectionStrings> </configuration> File: ShowProduct.aspx <%@ Page Language="C#" %> <%@ Import Namespace="System.Data" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server">     protected void btnReject_Click(object sender, EventArgs e)     {         Product product = new Product();         product.RejectChanges();         grdProducts.DataBind();     }     protected void btnAccept_Click(object sender, EventArgs e)     {         Product product = new Product();         product.AcceptChanges();         grdProducts.DataBind();     } </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">     <title>Show Product</title> </head> <body>     <form id="form1" runat="server">     <div>     <h1>Edit Products</h1>     <asp:GridView         id="grdProducts"         DataSourceID="srcProducts"         DataKeyNames="Id"         AutoGenerateEditButton="true"         Runat="server">         <Columns>         <asp:TemplateField>         <ItemTemplate>         <%# ((DataRowView)Container.DataItem).Row.RowState %>         </ItemTemplate>         </asp:TemplateField>         </Columns>     </asp:GridView>     <br />     <asp:Button         id="btnReject"         Text="Reject Changes"         OnClick="btnReject_Click"         Runat="server" />     <asp:Button         id="btnAccept"         Text="Accept Changes"         OnClick="btnAccept_Click"         Runat="server" />     <asp:ObjectDataSource         id="srcProducts"         TypeName="Product"         SelectMethod="GetAll"         UpdateMethod="Update"         Runat="server" />     </div>     </form> </body> </html>