【发布时间】:2011-08-21 18:23:12
【问题描述】:
这里以一个较大函数的简单代码sn-p为例。
Using conn as New SqlConnection("conn string")
Using find as new SqlCommand("ExampleProc",conn)
Dim rParam as new SqlParameter("@RESULT",SqlDbType.Int)
rParam.Direction = ParameterDirection.Output
find.Pareameters.Add(rParam)
Using f as SqlDataReader = find.ExecuteReader
'Do stuff with datareader
End Using
updateResult.Success = Convert.ToBoolean(find.Parameters("@RESULT").Value)
End Using
End Using
我知道 SqlDataReader 关闭后会返回 Output 参数。据我所知,Using 语句将在 SqlDataReader 上调用 .Dispose,那么这基本上会消除 Output 参数吗?如果是这样,调用 SqlDataReader 的最佳方法是什么,该 SqlDataReader 还包含正确关闭和处理所有内容的输出参数?在我的搜索中,我在网上找不到任何具体的信息或示例。谢谢!
让我根据我读到的内容补充一下,在调用 SqlDataReader 上的 .Close 后,您只能使用 SqlDataReader 访问 Output 参数。
【问题讨论】:
-
处置读者应该只影响那个对象(以及它拥有的任何对象或资源)。我认为它不应该从命令中删除任何内容。
标签: .net vb.net parameters sqldatareader using-statement