Imports System
Imports System.Xml
Imports WebTest.BingWS
Public Class frmMain
Const AppId As String = "MyBingAppID"
Private Sub btnSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearch.Click
Dim WS As New BingWS.LiveSearchService
Try
Dim request As SearchRequest = BuildRequest()
Dim response As SearchResponse = WS.Search(request)
DisplayResponse(response)
Catch ex As System.Web.Services.Protocols.SoapException
DisplayErrors(ex.Detail)
Catch ex As System.Net.WebException
MessageBox.Show(ex.Message)
End Try
End Sub
Shared Function BuildRequest() As SearchRequest
Dim request As New SearchRequest
With request
.AppId = AppId
.Query = frmMain.txtQuery.Text
.Sources = New SourceType() {SourceType.Web}
.Version = "2.0"
.Market = "en-us"
.Adult = AdultOption.Moderate
.AdultSpecified = True
.Options = New SearchOption() {SearchOption.EnableHighlighting}
.Web = New WebRequest
With .Web
.Count = frmMain.txtCount.Text
.CountSpecified = True
.Offset = 0
.OffsetSpecified = True
.Options = New WebSearchOption() _
{ _
WebSearchOption.DisableHostCollapsing, _
WebSearchOption.DisableQueryAlterations _
}
End With
End With
Return request
End Function
Shared Sub DisplayResponse(ByVal response As SearchResponse)
frmMain.DGV.Rows.Clear()
Dim builder1 As New System.Text.StringBuilder
Dim builder2 As New System.Text.StringBuilder
Dim builder3 As New System.Text.StringBuilder
Dim result As WebResult
Dim S1 As String = ""
Dim S1Temp As String = ""
Dim S1Temp1 As String = ""
Dim S2 As String = ""
Dim S2Temp As String = ""
Dim S2Temp2 As String = ""
Dim S3 As String = ""
Dim S3Temp As String = ""
Dim S3Temp3 As String = ""
Try
For Each result In response.Web.Results
With result
builder1.Length = 0
builder1.AppendLine(.Title)
S1Temp = builder1.ToString
builder2.Length = 0
builder2.AppendLine(.Description)
S2Temp = builder2.ToString
builder3.Length = 0
builder3.AppendLine(.Url)
S3Temp = builder3.ToString
End With
S1Temp1 = S1Temp.Replace(Char.ConvertFromUtf32(&HE000), "")
S1 = S1Temp1.Replace(Char.ConvertFromUtf32(&HE001), "")
S2Temp2 = S2Temp.Replace(Char.ConvertFromUtf32(&HE000), "")
S2 = S2Temp2.Replace(Char.ConvertFromUtf32(&HE001), "")
S3Temp3 = S3Temp.Replace(Char.ConvertFromUtf32(&HE000), "")
S3 = S3Temp3.Replace(Char.ConvertFromUtf32(&HE001), "")
frmMain.DGV.Rows.Add(New Object() {S1, S2, S3})
Next
Catch
MessageBox.Show("No results found.")
Exit Sub
End Try
End Sub
Shared Sub DisplayErrors(ByVal errorDetails As XmlNode)
Dim nsmgr As New XmlNamespaceManager( _
errorDetails.OwnerDocument.NameTable)
nsmgr.AddNamespace( _
"api", _
"http://schemas.microsoft.com/LiveSearch/2008/03/Search")
Dim errors As XmlNodeList = errorDetails.SelectNodes( _
"./api:Errors/api:Error", _
nsmgr)
If (Not errors Is Nothing) Then
Dim [error] As XmlNode
For Each [error] In errors
Dim detail As XmlNode
For Each detail In [error].ChildNodes
MessageBox.Show("Errors: " & detail.Name & detail.InnerText)
Next
Next
End If
End Sub
Private Sub btnBrowser_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBrowser.Click
Dim WBForm As New frmWebBrowser
Dim dgvRows As DataGridViewSelectedRowCollection = DGV.SelectedRows
WBForm.webResults.Url = New Uri(dgvRows.Item(0).Cells(2).Value.ToString)
WBForm.Show()
End Sub
End Class
Experts Exchange always has the answer, or at the least points me in the correct direction! It is like having another employee that is extremely experienced.
When asked, what has been your best career decision?
Deciding to stick with EE.
Being involved with EE helped me to grow personally and professionally.
Connect with Certified Experts to gain insight and support on specific technology challenges including:
We've partnered with two important charities to provide clean water and computer science education to those who need it most. READ MORE