Introduction
This article describes how to add a Google search feature in ASP.Net. Here I will describe how to communicate with the Google search API.
Description
Since it is third party software, we require a third-party DLL to be referenced by our application that will communicate with the Google server.
For this we must download the Google Search API:
- GoogleSearchAPI.dll
You can download it from the source code attached in this article.
Design
Now add one TextBox,one Button and one Datalist.
In the Datalist I used one linkbutton to show the search result title with link and label to show the search description.
Design your screen as in the following screen.
![1.png]()
Or you can copy the following source code:
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server" Width="300px"></asp:TextBox>
<asp:Button ID="btnSearch" runat="server" Text="Google Search" OnClick="Button1_Click" /><br />
<asp:DataList ID="dlSearch" runat="server" Width="600px">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" Text='<%#Eval("Title") %>' PostBackUrl='<%#Eval("Url") %>'></asp:LinkButton><br />
<asp:Label ID="Label1" runat="server" Text='<%#Eval("Content") %>'></asp:Label><br />
<br />
</ItemTemplate>
<FooterTemplate>
<asp:Label Visible='<%#bool.Parse((dlSearch.Items.Count==0).ToString())%>' runat="server"
ID="lblNoRecord" Text="No Record Found!"></asp:Label>
</FooterTemplate>
</asp:DataList>
</div>
</form>
</body>
Now go to the code view.
Next add a reference of the following Google Search API DLL to your website:
- GoogleSearchAPI.dll
And write the following code in the .cs file:
using System;
using System.Collections.Generic;
using Google.API.Search;
using System.Data;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
dlSearch.DataSource = null;
dlSearch.DataBind();
TextBox1.Text = "";
}
}
protected void Button1_Click(object sender, EventArgs e)
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("Title", typeof(string)));
dt.Columns.Add(new DataColumn("Content", typeof(string)));
dt.Columns.Add(new DataColumn("Url", typeof(string)));
GwebSearchClient client = new GwebSearchClient("www.c-sharpcorner.com");
IList<IWebResult> results = client.Search(TextBox1.Text, 30);
foreach (IWebResult result in results)
{
DataRow dr = dt.NewRow();
dr["Title"] = result.Title.ToString();
dr["Content"] = result.Content.ToString();
dr["Url"] = result.Url;
dt.Rows.Add(dr);
}
dlSearch.DataSource = dt;
dlSearch.DataBind();
}
}
In the code above I passed the TextBox value in the button click to Google server.
After getting the result I bound it to the datatable then to the datalist control.
Just check these two lines:
GwebSearchClient client = new GwebSearchClient("www.c-sharpcorner.com");
IList<IWebResult> results = client.Search(TextBox1.Text, 30);
In the first line I am passing "www.c-sharpcorner.com" as the Client because it required a hosted site for Security purposes.
If you dodn't pass that then it will show an exception.
In the second line I am passing 30 and a TextBox value. Here 30 means I am getting 30 search results.
So you can increase or decrease this value as needed.
Now build your application. Enter a search query then press the button.
It will show all the Google search results.
![2.jpg]()
Now click on the link to see the corresponding site.
For any modifications or problems please comment.
Thank You.