首页 > 解决方案 > 对返回对象和输出参数使用 ExecuteNonQuery 或 ExecuteReader

问题描述

我正在尝试创建 Web 服务。一个函数使用返回输出参数和类对象(用于 XML)的存储过程。

这是我的网络服务(VB.net):

<WebMethod()>
    Public Function Search(ByVal ID As String,ByRef ROW As String) As List(Of Entity)


        Dim log As String = ""
        Dim sqlconn As New SqlConnection
        Dim sqlcmd As New SqlCommand
        Dim ListOfEntity As List(Of Entity) = New List(Of Entity)
        Try
            sqlconn.ConnectionString = CONNECTION_STRING
            sqlcmd.Connection = sqlconn
            sqlconn.Open()

            sqlcmd.CommandType = Data.CommandType.StoredProcedure
            sqlcmd.CommandText = "ENTITY_DETAILS"
            sqlcmd.Parameters.AddWithValue("@ID", ID)

            sqlcmd.Parameters.Add("@ROW", SqlDbType.NVarChar)
            sqlcmd.Parameters("@ROW").Direction = ParameterDirection.Output

            Dim result = sqlcmd.ExecuteScalar()
            Dim ROWValue = sqlcmd.Parameters("@ROW").Value

            Dim sqlreader = sqlcmd.ExecuteReader()
            If sqlreader IsNot Nothing And sqlreader.HasRows Then
                While sqlreader.Read()
                    ListOfEntity.Add(New Entity With
                    {

我是否应该使用以下语句显式绑定输出参数

Dim ROWValue = sqlcmd.Parameters("@ROW").Value

还是我需要这样绑定

ROW = sqlcmd.Parameters("@ROW").Value

否则它将被隐式绑定。

请澄清是否两者ExecuteScalarExecuteReader必须用于这两个结果。

要求是:Web 服务将获取一些参数并返回一个带有一些类对象的输出参数作为 XML。

标签: sqlvb.netstored-procedures

解决方案


推荐阅读