2014-11-22 65 views
0

我有这个存储过程不会返回@RefereeIdgetRefereeId输出参数。有什么建议么?运行此查询从表中选择一个值以插入新表格加上其他值

当我什么也得不到返回 getRefereeId
@Email nvarchar(50), 
    @AssignerId int, 
    @RefereeId Int Output, 
    @DateCreated Datetime, 
    @Active bit, 
    @Invitation bit 
as 
begin 
    Select @RefereeId 
    From Referee 
    Where Email = @Email 

    Insert Into Assignment (AssignerId, RefereeId, DateCreated, Active, Invitation) 
    Values (@AssignerId, @RefereeId, @DateCreated, @Active, @Invitation) 
End 

VB代码:

Dim strConn As String = "Data Source=mydatasource" 
Dim Conn As New SqlConnection(strConn) 

Dim Cmd As New SqlCommand("InviteReferee", Conn) 
Cmd.CommandType = CommandType.StoredProcedure 

Cmd.Parameters.Add(New SqlParameter("Email", newEmail.Text))   
Cmd.Parameters.Add(New SqlParameter("Invitation", "True")) 
Cmd.Parameters.Add(New SqlParameter("Active", "False")) 
Cmd.Parameters.Add(New SqlParameter("AssignerId", AssignerId.Text)) 
Cmd.Parameters.Add(New SqlParameter("DateCreated", DateTime.Now()))   

Dim getRefereeId As SqlParameter = Cmd.Parameters.Add("@RefereeId", SqlDbType.Int) 
getRefereeId.Direction = ParameterDirection.Output 

Conn.Open() 
Cmd.ExecuteNonQuery() 

回答

0

你需要实际的列值分配给你的输出参数!

你的代码改成这样:

Select @RefereeId = SomeSuitableColumnNameHere 
From dbo.Referee 
Where Email = @Email 

这样的话,你会选择在Referee你列一个成然后被发送回VB.NET调用者@RefereeId参数。

相关问题