如何从我的WCF Web服务访问SQL Server?

时间:2014-01-31 21:37:08

标签: asp.net sql vb.net wcf

VS Express 2012,SQL Server Express 2012,Win 8.1

您好,

我有一个(非常)简单的WCF作为IIS上的Web服务托管。我还在同一台机器上安装了一个SQL Server实例(带有1个表)。

我需要有关如何从WCF(VB)连接到SQL并从表中检索单个记录的逐步指南(即:“从MYTABLE中选择最后一个名称PK = 1;”)。而已。我不需要1,200页的手册 - 这就是Google一直在向我投掷的内容。

任何人都知道快速,干净的资源吗?

谢谢, 杰森

2 个答案:

答案 0 :(得分:0)

从所需类的角度来看,在WCF服务或普通应用程序中使用ADO.NET没有区别。

首先需要的是一个连接字符串,它允许您的SqlConnection对象找到您要使用的主机和数据库。 Here examples on connection strings

然后你通常需要一个SqlCommand来封装检索数据所需的SQL文本和参数(在这里设置你的SELECT语句和条件)

最后,您需要一个SqlDataReader来获取命令执行的结果,并允许您循环结果。

Here a sample that could get you started.

请记住,这只是一个最小的待办事项列表,还有许多其他方法可以处理数据。 SqlDataAdapter,Dataset,DataTable等基本对象提供了从数据库加载数据和使用该数据的不同方法。除此之外,还有Linq To SqlObject Relational Mapper等工具可以抽象数据访问并在数据之上提供高级功能。

这可能是您获得有关数据访问技术的大量信息的原因

答案 1 :(得分:0)

涉及的主要课程是SqlConnectionSqlCommand。这些类的文档包含一些如何使用它们的示例。为了帮助您入门,这里有一个小样本:

Dim connStr = "Data Source=SQLServerName\InstanceName;Initial Catalog=DatabaseName;Integrated Security=SSPI"
Using conn As New SqlConnection(connStr)
    conn.Open()
    Using cmd = conn.CreateCommand()
        cmd.CommandText = "SELECT LAST_NAME FROM MYTABLE WHERE PK = @pk"
        cmd.Parameters.AddWithValue("@pk", 1)
        Dim result = cmd.ExecuteScalar()
        If Typeof result Is DbNull Then
            ' Handle null value
        Else
            ' Otherwise
        End If
    End Using
End Using

此示例假定您要在语句中检索单个单元格。如果要检索表格数据,请查看SqlDataReaderSqlDataAdapter类。 请注意 - 特别是在服务器应用程序中 - 正确处理创建的实例非常重要。