繁体   English   中英

WCF服务使用ADO.NET VB.NET从SQL Server获取数据

[英]Getting DATA from SQL Server by WCF Services using ADO.NET VB.NET

我已将WCF服务附加到示例网站。
除了使用SQL查询从SQL Server获取数据的函数以外,WCF函数都可以正常工作。
我对VB.NET不太熟悉,我的经验来自VBA,这很相似,但是设置查询却大不相同。

最初,我尝试使用SqlDataReader然后使用SqlDataAdapter相同的结果。 我的服务卡住了。
Visual Studio显示由于内部错误,导致SQL Server无法传递数据的错误。
这很奇怪,因为当我在Visual Studio中使用“ WCF测试客户端”时,两个功能都可以正常工作并接收正确的数据。 另外,当我直接将此功能附加到我的网站时,效果也很好。 问题是WCF使用它们。

下面是我的SQLDataAdapter函数

Public Function GetCookiesPriceDS(ByVal nameOfCookie As String) _
    As DataSet Implements IService1.GetCookiesPriceDS

    Dim queryString As String
    Dim dataSet As DataSet = New DataSet("temporary")
    queryString = "select CookiesPrice from " &
    "tblCookies where CookiesName='" & nameOfCookie & "'"
    Using connection As New SqlConnection _
        ("Server= xyz\SQLEXPRESS; Database = Cookies2; " &
        "Integrated Security = true;User Id = xyz;Password = xyz")
        Dim adapter As New SqlDataAdapter()
        adapter.SelectCommand = New SqlCommand(queryString, connection)
        adapter.Fill(dataSet)
        Return dataSet
    End Using
End Function

好的,我在vb.net中找到了一些示例代码,并做了一些小的更改。 它不起作用,因为在“ WCF Test Client”中,函数旁边显示了红色符号,并带有注释-“在WCF Test Client中不支持此操作,因为它使用WcfService.CookiesData类型。”但是尽管如此,我认为这段代码要好得多比我以前的版本更好,并且在和中具有更好的定义。 但是仍然存在一些问题,我无法弄清楚什么是错的

Imports System.Data.SqlClient Imports System.Data Imports System.Configuration Imports System.ServiceModel Imports System.Runtime.Serialization Public Class Service1 Implements IService1 Public Function GetCookiesPriceDS(ByVal nameOfCookie As String) _ As CookiesData Implements IService1.GetCookiesPriceDS Using con As New SqlConnection("Server= xyz\SQLEXPRESS; Database = Cookies2; " & "Integrated Security = true;") Using cmd As New SqlCommand("select CookiesPrice from tblCookies where CookiesName='" & nameOfCookie & "'") Using sda As New SqlDataAdapter() cmd.Connection = con sda.SelectCommand = cmd Using dt As New DataTable() Dim ck As New CookiesData() sda.Fill(ck.CustomersTable) Return ck End Using End Using End Using End Using End Function End Class <ServiceContract()> Public Interface IService1 <OperationContract()> Function GetCookiesPriceDS(ByVal nameOfCookie As String) As CookiesData End Interface <DataContract()> Public Class CookiesData Public Sub New() CustomersTable = New DataTable("TblCookies") End Sub <DataMember()> Public Property CustomersTable() As DataTable End Class

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM