Mega Code Archive

 
Categories / ASP.Net / ADO Database
 

Creating a Custom ObjectDataSource Control

File: ProductDataSource.cs using System; using System.Data; using System.Data.SqlClient; using System.Web.Configuration; using System.Web.UI.WebControls; namespace CustomControl.Samples {     public class ProductDataSource : ObjectDataSource     {         public ProductDataSource()         {             this.TypeName = "CustomControl.Samples.ProductsComponent";             this.SelectMethod = "GetProducts";         }     }     public class ProductsComponent     {         private readonly string _conString;         public SqlDataReader GetProducts()         {             SqlConnection con = new SqlConnection(_conString);             SqlCommand cmd = new SqlCommand();             cmd.Connection = con;             cmd.CommandText = "SELECT Title,Director,DateReleased FROM Products";            // Execute command             con.Open();             return cmd.ExecuteReader(CommandBehavior.CloseConnection);         }         public ProductsComponent()         {             _conString = WebConfigurationManager.ConnectionStrings["Products"]. ConnectionString;         }     } } 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: Default.aspx <%@ Page Language="C#" %> <%@ Register TagPrefix="custom" Namespace="CustomControl.Samples" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">     <title>Show Product DataSource</title> </head> <body>     <form id="form1" runat="server">     <div>     <asp:GridView         id="grdProducts"         DataSourceID="srcProducts"         Runat="server" />     <custom:ProductDataSource         id="srcProducts"         Runat="server" />     </div>     </form> </body> </html>