Как получить значение параметра inputoutput после запуска шаблона вставки Formview хранимой процедуры в .NET 2.0? - PullRequest
2 голосов
/ 17 октября 2008

У меня есть formview, который выполняет хранимую процедуру вставки через адаптер таблицы, как обычно. За исключением случаев, когда при вставке происходит сбой, выходной параметр sp, называемый error_msg, устанавливается на

 "Insert failed because XXXX is required".  

как мне зафиксировать это значение и распечатать его на экране для пользователя? Кажется, я не могу найти его.

1 Ответ

1 голос
/ 15 октября 2010

Некоторые детали отсутствуют, например, если вы используете 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...
}
...