Saturday 30 November 2013

How to create Optional search using coalesce Function in Asp.net

How to create Optional search in ADO.NET with Store Procedure in Asp.net with   coalesce Function in Sql Server

--create database sqltopquery
use sqltopquery

--create table MyFriendList in database sqltopquery

create table MyFriendList(SrNo int identity(1,1) primary key,Name nvarchar(50),Emailid nvarchar(50) unique ,MobileNo nvarchar(50)unique,Address nvarchar(50),Course nvarchar(50))

--insert  into table
insert into MyFriendList values('Mrityunjay Kumar','ritumk.kumar902@gmail.com','9971684069','Bhagalpur','B C A')

--create stored procedure OpSearch…………………………………………

create proc OpSearch @SrNo int=0,@Name nvarchar(50)='',@MobileNo nvarchar(50)='',@Emailid nvarchar(50)='',@Address nvarchar(50)='',@Course nvarchar(50)=''
as
begin
SELECT * FROM MyFriendList where 1=1
and (SrNo=@SrNo or coalesce(@SrNo,'')=0)
and (Name=@Name or coalesce(@Name,'')='')
and (MobileNo=@MobileNo or coalesce(@MobileNo,'')='')
and (Emailid=@Emailid or coalesce(@Emailid,'')='')
and (Address=@Address or coalesce(@Address,'')='')
and (Course=@Course or coalesce(@Course,'')='')
end

--exec  stored procedure OpSearch

exec OpSearch 1,'Kush Tiwari',default,default,default,default
exec OpSearch default,default,default,default,default,'B. Tech'
exec OpSearch 2

Source code  for Search.aspx ………………………………………………..

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Search.aspx.cs" Inherits="Search" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<style type="text/css">
.style1
{
width: 70%;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<table class="style1" >
<tr>
<td colspan="2">
<center> <b><font color="Greeen">How to create Optional search in ADO.NET with Store Procedure  with coalesce Function in Sql Server in Asp.net </font></b></center> </td>
</tr>
<tr>
<td>
Search By Name</td>
<td>
Search By EmailId</td>
</tr>
<tr>
<td>
<asp:TextBox ID="txtname" runat="server"></asp:TextBox>
</td>
<td>
<asp:TextBox ID="txtemailid" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>
Search By Mobile No</td>
<td>
Search By&nbsp; Course</td>
</tr>
<tr>
<td>
<asp:TextBox ID="txtmobileno" runat="server"></asp:TextBox>
</td>
<td>
<asp:DropDownList ID="ddlcourse" runat="server" Height="19px" Width="126px">
<asp:ListItem>--Select--</asp:ListItem>
<asp:ListItem>M C A</asp:ListItem>
<asp:ListItem>B C A</asp:ListItem>
<asp:ListItem>B Tech</asp:ListItem>
<asp:ListItem>M Tech</asp:ListItem>
<asp:ListItem>M A</asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr>
<td>
Search&nbsp; By Address</td>
<td>
Search By SrNo</td>
</tr>
<tr>
<td>
<asp:TextBox ID="txtaddress" runat="server"></asp:TextBox>
</td>
<td>
<asp:TextBox ID="txtsrno" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>
&nbsp;</td>
<td>
<asp:Button ID="btnSearch" runat="server" onclick="btnSearch_Click"
Text="Search" />
</td>
</tr>
<tr>
<td colspan="2">
<center>   <asp:Label ID="lblerrormessage" runat="server" Text="Label" Visible="False"></asp:Label>
</center>
</td>
</tr>
<tr>
<td colspan="2"><center>
<asp:GridView ID="GridView1" runat="server">
<EmptyDataTemplate>
There is&nbsp; no data for this search
</EmptyDataTemplate>
</asp:GridView>
</center>
</td>
</tr>
</table>
<div>

</div>
</form>
</body>
</html>


Source code  for Search.aspx.cs ………………………………………………..

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Drawing;

public partial class Search : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void btnSearch_Click(object sender, EventArgs e)
{
try
{
// using ternary-operator ...

string q = (txtsrno.Text == "") ? "default" + "," : "'" + txtsrno.Text + "'" + ",";
q += (txtname.Text == "") ? "default" + "," : "'" + txtname.Text + "'" + ",";
q += (txtmobileno.Text == "") ? "default" + "," : "'" + txtmobileno.Text + "'" + ",";
q += (txtemailid.Text == "") ? "default" + "," : "'" + txtemailid.Text + "'" + ",";
q += (txtaddress.Text == "") ? "default" + "," : "'" + txtaddress.Text + "'" + ",";
q += (ddlcourse.SelectedIndex == 0) ? "default" : "'" + ddlcourse.SelectedItem.Text + "'";
string query = "exec OpSearch " + q;

SqlConnection con = new SqlConnection(@"Data Source=KUSH-PC\KUSH;Initial Catalog=SqlTopQuery;Integrated Security=True");
SqlCommand cmd = new SqlCommand(query, con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
}
catch (Exception ex)
{
lblerrormessage.Visible = true;
lblerrormessage.ForeColor = Color.Red;
lblerrormessage.Text = ex.Message;
}
 }
}


1 comments: