Developing a WCF Service Library and Hosting it with a Custom App Using VS2K8 - Creating a WCF Service Library: source code
(Page 3 of 5 )
Once the project is created and configured (as shown in previous sections), modify "IProductService.vb" to match the following:
<ServiceContract()> _
Public Interface IProductService
<OperationContract()> _
Function GetProductInfo(ByVal ProductID As Integer) As Product
<OperationContract()> _
Function GetProductNames() As List(Of String)
End Interface
<DataContract()> _
Public Class Product
Private _ProductID As Integer
Private _ProductName As String
Private _UnitPrice As Double
Private _UnitsInStock As Integer
Private _UnitsOnOrder As Integer
<DataMember()> _
Public Property ProductID() As Integer
Get
Return _ProductID
End Get
Set(ByVal value As Integer)
_ProductID = value
End Set
End Property
<DataMember()> _
Public Property ProductName() As String
Get
Return _ProductName
End Get
Set(ByVal value As String)
_ProductName = value
End Set
End Property
<DataMember()> _
Public Property UnitPrice() As Double
Get
Return _UnitPrice
End Get
Set(ByVal value As Double)
_UnitPrice = value
End Set
End Property
<DataMember()> _
Public Property UnitsInStock() As Integer
Get
Return _UnitsInStock
End Get
Set(ByVal value As Integer)
_UnitsInStock = value
End Set
End Property
<DataMember()> _
Public Property UnitsOnOrder() As Integer
Get
Return _UnitsOnOrder
End Get
Set(ByVal value As Integer)
_UnitsOnOrder = value
End Set
End Property
End Class
Modify "ProductService.vb" to match the following:
Imports System.Data
Imports System.Data.SqlClient
Public Class ProductService
Implements IProductService
Public Function GetProductInfo(ByVal ProductID As Integer) As Product Implements IProductService.GetProductInfo
Using cn As New SqlConnection(My.Settings.cnNorthwind)
Using cmd As New SqlCommand("SELECT ProductID, ProductName, UnitPrice, UnitsInStock, UnitsOnOrder FROM dbo.Products WHERE ProductID=" & ProductID, cn)
cmd.Connection.Open()
Using rdr As SqlDataReader = cmd.ExecuteReader
If rdr.Read() Then
Return New Product With {.ProductID = rdr(rdr.GetOrdinal("ProductID")), .ProductName = rdr(rdr.GetOrdinal("ProductName")) & "", .UnitPrice = rdr(rdr.GetOrdinal("UnitPrice")) & "", .UnitsInStock = rdr(rdr.GetOrdinal("UnitsInStock")) & "", .UnitsOnOrder = rdr(rdr.GetOrdinal("UnitsOnOrder")) & ""}
Else
Return Nothing
End If
End Using
cmd.Connection.Close()
End Using
End Using
End Function
Public Function GetProductNames() As System.Collections.Generic.List(Of
String) Implements IProductService.GetProductNames
Dim ProductNames As New List(Of String)
Using cn As New SqlConnection(My.Settings.cnNorthwind)
Using cmd As New SqlCommand("SELECT ProductName FROM dbo.Products", cn)
cmd.Connection.Open()
Using rdr As SqlDataReader = cmd.ExecuteReader
If rdr.HasRows Then
While rdr.Read
ProductNames.Add(rdr(rdr.GetOrdinal("ProductName")))
End While
Return ProductNames
Else
Return Nothing
End If
End Using
cmd.Connection.Close()
End Using
End Using
End Function
End Class
Next: Build the project >>
More ASP.NET Articles
More By Jagadish Chaterjee