.net调用存储过程的返回值的问题

zhanghr2005 2011-11-28 01:08:27
存储过程的代码
ALTER PROCEDURE dbo.test
@out_aft_nunn INT OUTPUT,
@out_mObjectNo INT OUTPUT

AS
begin

set @out_aft_nunn = 112
set @out_mObjectNo =456
end
程序调用的代码 Dim conn As New SqlClient.SqlConnection(Me.ConnectionString)
Try
Dim myCmd As New SqlClient.SqlCommand

myCmd.CommandType = CommandType.StoredProcedure
myCmd.CommandTimeout = 0
myCmd.CommandText = "dbo.test "
myCmd.CommandTimeout = 0
myCmd.Connection = conn
myCmd.Connection.Open()
Dim myDap As New SqlClient.SqlDataAdapter(myCmd)

myDap.SelectCommand.Parameters.Add(("@out_aft_nunn"), SqlDbType.Int).Value = 5
myDap.SelectCommand.Parameters.Add(("@out_mObjectNo"), SqlDbType.Int).Value = 6

myCmd.ExecuteNonQuery()

Dim obj2 As Integer = CInt(myCmd.Parameters(1).Value)
Dim obj1 As Integer = CInt(myCmd.Parameters("@out_mObjectNo").Value)

Catch ex As Exception
Throw
Finally
conn.Close()
End Try

'Return "0"
End Function
以上的代码,调用的存储过程中有多个出参,用.net调用取得的值为什么是我入参的值呢
...全文
56 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sql_sf 2011-11-28
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zhanghr2005 的回复:]
存储过程的参数可以既是入参,又是出参吗?
[/Quote]
不可以
默认的是输入的
带output是输出的

如果你想指定默认值
参数就可以直接指定

或者多弄几个参数内部转换
zhanghr2005 2011-11-28
  • 打赏
  • 举报
回复
存储过程的参数可以既是入参,又是出参吗?
--小F-- 2011-11-28
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 sql_sf 的回复:]
引用 4 楼 zhanghr2005 的回复:
myDap.SelectCommand.Parameters.Add(("@out_aft_nunn"), SqlDbType.Int).Value = 5
myDap.SelectCommand.Parameters.Add(("@out_mObjectNo"), SqlDbType.Int).Value = 6
是赋初期值得,这两个参数在存……
[/Quote]

sql_sf 2011-11-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhanghr2005 的回复:]
myDap.SelectCommand.Parameters.Add(("@out_aft_nunn"), SqlDbType.Int).Value = 5
myDap.SelectCommand.Parameters.Add(("@out_mObjectNo"), SqlDbType.Int).Value = 6
是赋初期值得,这两个参数在存储过程是出参
[/Quote]

  Try
Dim myCmd As New SqlClient.SqlCommand

myCmd.CommandType = CommandType.StoredProcedure
myCmd.CommandTimeout = 0
myCmd.CommandText = "dbo.test "
myCmd.CommandTimeout = 0
myCmd.Connection = conn
myCmd.Connection.Open()
myCmd.Parameters.AddWithValue("@out_aft_nunn", SqlDbType.Int)
myCmd.Parameters("@out_aft_nunn").Direction = ParameterDirection.Output
myCmd.Parameters.AddWithValue("@out_mObjectNo", SqlDbType.Int)
myCmd.Parameters("@out_mObjectNo").Direction = ParameterDirection.Output
myCmd.ExecuteNonQuery()
Dim obj2 As Integer = myCmd.Parameters("@out_aft_nunn").Value
Catch ex As Exception
Throw
Finally
conn.Close()
End Try
zhanghr2005 2011-11-28
  • 打赏
  • 举报
回复
.Direction = ParameterDirection.Output不知道这句话要什么在身位置啊?
zhanghr2005 2011-11-28
  • 打赏
  • 举报
回复
myDap.SelectCommand.Parameters.Add(("@out_aft_nunn"), SqlDbType.Int).Value = 5
myDap.SelectCommand.Parameters.Add(("@out_mObjectNo"), SqlDbType.Int).Value = 6
是赋初期值得,这两个参数在存储过程是出参
sql_sf 2011-11-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sql_sf 的回复:]
myDap.SelectCommand.Parameters.Add(("@out_aft_nunn"), SqlDbType.Int).Value = 5
myDap.SelectCommand.Parameters.Add(("@out_mObjectNo"), SqlDbType.Int).Value = 6
输入参数
你赋值?
[/Quote]
输出
sql_sf 2011-11-28
  • 打赏
  • 举报
回复
myDap.SelectCommand.Parameters.Add(("@out_aft_nunn"), SqlDbType.Int).Value = 5
myDap.SelectCommand.Parameters.Add(("@out_mObjectNo"), SqlDbType.Int).Value = 6
输入参数
你赋值?
sql_sf 2011-11-28
  • 打赏
  • 举报
回复
.Direction = ParameterDirection.Output

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧