2

我有一个 formview,它像往常一样通过表适配器执行插入存储过程。除非插入失败,sp 上名为 error_msg 的输出参数设置为

 "Insert failed because XXXX is required".  

如何捕获此值并将其打印在用户的屏幕上?我似乎无法找到它。

4

1 回答 1

1

缺少一些详细信息,例如您是否使用ObjectDataSource,您正在使用哪个数据库等。

那么这是一个为 SQL Server 检索输出参数的示例。

将数据源绑定到您的 FormView

<asp:ObjectDataSource ID="myDataSource" runat="server" 
       InsertCommand="myProcedure" 
       InsertCommandType="StoredProcedure"
       Inserted="myDataSource_Inserted">
  <InsertParameters>
    <asp:Parameter Name="returnValue" Type="String" Direction="InputOuput" />
    <asp:Parameter Name="myField1" Type="Int32" />
    <asp:Parameter Name="myField2" Type="String" />
  </InsertParameters>
</asp:ObjectDataSource>

并在 SQL Server 中创建一个过程:

CREATE PROCEDURE myProcedure 
(
   @myField1 int,
   @myField2 varchar(50),
   @returnValue varchar(100) OUT 
)

AS

BEGIN

   INSERT INTO myTable VALUES (@myField1, @myField2)

   IF @@ERROR <> 0 
      SET @returnValue='Insert failed because XXXX is required'
END

对象数据源还有一个事件方法,您可以使用它来检索参数信息:

protected void myDataSource_Inserted(object sender, ObjectDataSourceStatusEventArgs e)
{
    string returnValue = Convert.ToString(e.ReturnValue);
    //your code here...
}
于 2010-10-15T00:33:36.510 回答