sql - 对返回对象和输出参数使用 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
否则它将被隐式绑定。
请澄清是否两者ExecuteScalar
都ExecuteReader
必须用于这两个结果。
要求是:Web 服务将获取一些参数并返回一个带有一些类对象的输出参数作为 XML。
解决方案
推荐阅读
- c# - 检查 GUI 应用程序是否正在运行(并且响应)
- html - CSS 容器放置
- azure - 需要帮助将免费英文文本转换为 Kusto 查询
- css - Safari 和 Firefox 中的渐变不平滑
- angular - localize-router 包破坏了翻译管道
- java - 是否可以使用没有 main() 的类来运行程序
- c++ - 在 emscripten webassembly 运行期间更新进度条?
- serialization - C# JSON 序列化/反序列化属性名称缩短
- java - 为什么不重绘 JPanel 中的按钮?
- angular - 如何以角度显示对话框作为弹出窗口?