2

通常どおり、テーブル アダプターを介して挿入ストアド プロシージャを実行するフォームビューがあります。挿入が失敗した場合を除いて、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 に答える