Imports System.Data
Imports System.Data.OleDb
Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Collections.Generic
<WebService(Namespace:="http://tempuri.org/")> _
<System.Web.Script.Services.ScriptService()> _
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Public Class AutoCompleteService
Inherits System.Web.Services.WebService
<WebMethod()> _
Public Function KisiArama(ByVal prefixText As String, ByVal count As Integer) As String()
' Access Bağlantısı İçin Bağlantı Cümlesi
Dim MyconnStr As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("App_Data/db.mdb") & ""
' OleDbDataAdapter kullanılarak doldurulacak olan datatable nesnesi
Dim Mydt As New DataTable
' Yeni bağlantı nesnesi
Dim AccessConn As New OleDbConnection(MyconnStr)
' Yeni command nesnesi
Dim AccessComm As New OleDbCommand("SELECT tumu from Kisiler", AccessConn)
' Gelen veriyi datatable aktarmak için gerekli olan adapter
Dim AccessDatapter As New OleDbDataAdapter(AccessComm)
' Sorgu sonucu dönen veri datatable nesnesine eklenir.
AccessDatapter.Fill(Mydt)
' Dönüş değerlerinin saklanacağı List nesnesi
Dim retvalitems As List(Of String) = New List(Of String)
' Datatable nesnesinin içinde row bazında gezinim
For Each Rows As DataRow In Mydt.Rows
' Bir string biçimlendirme fonksiyonu olan StartsWith ile row da ki değerin parametre olarak gelen
' prefixText ile başlayıp başlamadığını kontrol eden if yapısı
If Rows.Item(0).ToString.StartsWith(prefixText, StringComparison.OrdinalIgnoreCase) Then
' geçerli olması durumunda koleksiyona ekle.
retvalitems.Add(Rows.Item(0).ToString)
End If
Next
' İstenildiği taktirde sonuç direkt bir array nesnesi olarak döndürülebilir.
'Return retvalitems.ToArray
' Fakat biz işe biraz daha renk katalım :)
If retvalitems.Count <= 0 Then
' Eğer hiç bir uygun kayıt yoksa bilgi mesajı döndür.
Return New String() {prefixText & " ile başlayan kayıt bulunamadı."}
Else
Return retvalitems.ToArray
End If
End Function
End Class