私が使用しているデータベースはSybaseのSQL Anywhereです。 v 11.0.1SQL Anywhere/ASP.NET - 出力パラメータ付きのSQLDataSourceの使用
私は行を挿入するために以下のストアード・プロシージャーを持っています。 I はselectステートメントで@@ identity変数を返します。私のASP.NETのWebアプリで
ALTER PROCEDURE "DBA"."Portal_InsertHeader"(in
theimi integer, in theUser long varchar, in
theNextServiceDate date)
RESULT(ident integer)
BEGIN
insert into
InvoiceCreditHeader(imi,createdby,nextServiceDate)
values(theimi,theUser,theNextServiceDate);
select @@identity;
END
私は SqlDataSourceコントロールに次のように持っています。最後の パラメータで出力タイプを使用しています。私は行が細かい挿入が、私は、「挿入」 方法で出力パラメータをチェックしようとすると、 私はNULL値を取得している.Insertメソッドを呼び出す
<asp:SqlDataSource ID="sqldsHeader" runat="server"
ConnectionString="<%$ ConnectionStrings:MSPortal %>"
ProviderName="<%$
ConnectionStrings:MSPortal.ProviderName %>"
InsertCommand="Call
Portal_InsertHeader(?,?,?)"
InsertCommandType="StoredProcedure">
<InsertParameters>
<asp:Parameter Name="IMI" Type="Int32" />
<asp:Parameter Name="USER" Type="String" />
<asp:Parameter Name="NextServiceDate"
Type="DateTime" />
<asp:Parameter direction="Output"
name="HeaderID" type="Int32" />
</InsertParameters>
<SelectParameters>
<asp:Parameter Name="ID" Type="Int32"
DefaultValue="0" />
</SelectParameters>
</asp:SqlDataSource>
。
ASP.NETコードの出力 変数にアクセスするには、何を変更する必要がありますか?
これが実行されると、「タイプ 'DBNull'から 'String' " (System.Web.UI.WebControls.SqlDataSourceStatusEventArgsとしてのByVal送信者)がsqldsHeader.Inserted を処理した場合 Me.hfHeaderNum.Value = e.Command.Parameters "HeaderID")。値 End If – user1247395