从aspx sqldatasource获取返回值

时间:2013-04-03 19:51:07

标签: c# asp.net sqldatasource

我在aspx中通过代码前端使用了insert命令,输出参数是:

asp:Parameter Name="ReturnCustomerID" Type="String" Direction="Output"

OnInserted="SqlDS_CustomerDetails_OnInserted"的代码隐藏(C#)中我有:

protected void SqlDS_CustomerDetails_OnInserted(object sender, SqlDataSourceStatusEventArgs e)
{
    String newCustomerID;
    newCustomerID = e.Command.Parameters["@ReturnCustomerID"].Value.ToString();
}

但由于某种原因,我一直为我的返回值获取null ...我已经尝试直接在SQL服务器中执行存储过程并且它很好并且返回正确的ID但不在c#中或ASPX。

有没有办法直接" eval"代码前端标签文本的输出参数?即。

asp:Label ID="NewCustomerID" runat="server" Text='<%# Eval("ReturnCustomerID") %>'>

我只需要将ID绑定到该标签的方法。

1 个答案:

答案 0 :(得分:1)

我看到你已将ReturnCustomerID参数类型设置为String。从存储过程返回一个字符串作为返回参数时,必须在调用存储过程之前将参数设置为非空值 - 即使它只是一个输出参数。因此,您需要使参数的方向为InputOutput:

<asp:Parameter Name="ReturnCustomerID" Type="String" Direction="InputOutput">

并且在SqlDataSource.Inserting事件中,您需要设置默认值:

e.Command.Parameters("@ReturnCustomerID").Value = "XXXXXXXXX" 

请参阅此链接http://social.msdn.microsoft.com/Forums/en-SG/sqlintegrationservices/thread/6c95fa58-ad54-4626-96f5-339495c1715f

然后向下滚动到Paul Smith的帖子。

相关问题