ストアドプロシージャからASP.Net VBスクリプトのページに4つの変数を返そうとしています。最初の結果を返してから壊すだけです。私のSQLの知識は限られています。私は、次のことを試してみました:SQLストアドプロシージャから複数の値を返す
SQL:
Alter PROCEDURE [dbo].[spDashboardPaymentRequests]
@id integer
AS
SELECT COUNT(Receiptno) as requestsSent
FROM [demofeepay3].[dbo].[vwallrequests]
Where Orgid = @id
SELECT Sum(totamount) as requestTotal
FROM [demofee].[dbo].[vwallrequests]
Where Orgid = @id
SELECT Sum(totamount) as requestTotalPaid
FROM [demofee].[dbo].[vwallrequests]
Where Orgid = @id AND status = 'paid'
SELECT Sum(totamount) as requestTotalUnpaid
FROM [demo].[dbo].[vwallrequests]
Where Orgid = @id AND status = 'unpaid'
をASP.NET
Function RequestsSent()
Dim objCmd2 As sqlCommand
Dim objRdr2 As sqlDataReader
objCmd2 = New SqlCommand("spDashboardPaymentRequests", objConn)
objCmd2.CommandType = CommandType.StoredProcedure
objCmd2.Parameters.AddWithValue("@orgid", Session("orgid"))
objConn.Open()
objRdr2 = objCmd2.ExecuteReader
objRdr2.Read()
Session("RequestsSent") = objRdr2("requestsSent")
Session("RequestsTotal") = objRdr2("requestTotal")
Session("RequestsTotalPaid") = objRdr2("requestTotalPaid")
Session("RequestsTotalUnpaid") = objRdr2("requestTotalUnpaid")
objConn.Close()
End Function
関数の代わりにその方法作る、あなたは何を返していません。あなたの方向にいくつかの出力パラメータを宣言し、SQLでそれらを設定...また、SQLは1ステートメントに減らすことができます。 – Codexer