CSharp Change Parameters Of Sqldatasource In Your Own Code – ADO.Net Database

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="SqlDataSourceLimits" %><!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 runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:SqlDataSource ID="sourceEmployees"
                           runat="server"
                           ProviderName="System.Data.SqlClient"
                           ConnectionString="<%$ ConnectionStrings:Northwind %>"
                           SelectCommand="SELECT EmployeeID, FirstName, LastName, Title, City FROM Employees WHERE City=@City"
                           OnSelecting="sourceEmployees_Selecting">
            <selectParameters>
                <asp:ControlParameter ControlID="lstCities"
                                      Name="City"
                                      PropertyName="SelectedValue" />
            </selectParameters>
        </asp:SqlDataSource>
        <asp:SqlDataSource ID="sourceEmployeeCities"
                           runat="server"
                           ProviderName="System.Data.SqlClient"
                           ConnectionString="<%$ ConnectionStrings:Northwind %>"
                           SelectCommand="SELECT DISTINCT City FROM Employees">
        </asp:SqlDataSource>
        <asp:DropDownList ID="lstCities"
                          runat="server"
                          DataTextField="City"
                          Width="205px"
                          AutoPostBack="True" >
        </asp:DropDownList><br />
        <br />
        <asp:GridView ID="GridView1"
                      runat="server"
                      DataSourceID="sourceEmployees"
                      CellPadding="4"
                      Font-Names="Verdana"
                      Font-Size="Small"
                      ForeColor="Navy"
                      GridLines="None"
                      AutoGenerateColumns="False"
                      DataKeyNames="EmployeeID">
            <footerStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
            <rowStyle BackColor="#FFFBD6" ForeColor="Navy" />
            <pagerStyle BackColor="#FFCC66" ForeColor="Navy" HorizontalAlign="Center" />
            <selectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
            <headerStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
            <alternatingRowStyle BackColor="White" />
            <columns>
                <asp:BoundField DataField="EmployeeID" HeaderText="EmployeeID" InsertVisible="False"
                    ReadOnly="True" SortExpression="EmployeeID" />
                <asp:BoundField DataField="FirstName" HeaderText="FirstName" SortExpression="FirstName" />
                <asp:BoundField DataField="LastName" HeaderText="LastName" SortExpression="LastName" />
                <asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />
                <asp:BoundField DataField="City" HeaderText="City" SortExpression="City" />
            </columns>
        </asp:GridView>
 
    </div>
    </form>
</body>
</html>File: Default.aspx.csusing System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;public partial class SqlDataSourceLimits : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    if (!Page.IsPostBack)
    {
      lstCities.DataSource = sourceEmployeeCities.Select(DataSourceSelectArguments.Empty);
      lstCities.DataBind();
      lstCities.Items.Insert(0, "(Choose a City)");
      lstCities.Items.Insert(1, "(All Cities)");
      lstCities.SelectedIndex = 0;
    }
    }  protected void sourceEmployees_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
  {
    if ((string)e.Command.Parameters["@City"].Value == "(Choose a City)")
    {
      e.Cancel = true;
    }
    else if ((string)e.Command.Parameters["@City"].Value == "(All Cities)")
    {
      e.Command.CommandText = "SELECT * FROM Employees";
    }
  }
}File: Web.config<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
  <appSettings/>
  <connectionStrings>
    <add name="Northwind" connectionString="Data Source=localhost;Initial Catalog=Northwind;Integrated Security=SSPI"/>
  </connectionStrings>
 
</configuration>

Enjoyed this post? Share it!

 

Leave a comment

Your email address will not be published.