CSharp Creating Custom Objectdatasource Control – ADO.Net Database

File: ProductDataSource.csusing 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>

Enjoyed this post? Share it!

 

Leave a comment

Your email address will not be published.