下面是一个较大函数的简单代码片段作为示例。使用Statement的Sqldatareader会返回一个Output参数吗?
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
我知道Output参数是在SqlDataReader关闭后返回的。从我认为我知道的情况来看,Using语句将在SqlDataReader上调用.Dispose
,那么基本上会消除Output参数?如果是这样,调用一个SqlDataReader的最佳方法是什么,该方法也包含关闭和正确处理所有内容的输出参数?在我的搜索中我找不到任何具体的信息或示例。谢谢!
让我补充一点,根据我读过使用一个SqlDataReader你调用SqlDataReader中.Close后,你只能访问输出参数。
处理读者应该只影响一个对象(以及它拥有的任何对象或资源)。我认为它不应该删除命令中的任何内容。 – svick