0
我检索基于条件的两个或更多表中的数据,所以我在SQL Server2005中这样写入光标:如何将SQL Server 2005中的游标值检索到ASP.NET 2.0中的gridview?
create PROC [dbo].[uspCustomerInvoiceGetlist]
@CustomerID varchar(20)
AS
BEGIN
SELECT DeleteStatus,InvoiceID,CONVERT(varchar(16),CreationDate,101) + ' ' +
CONVERT(varchar(16),CreationDate,8) as CreationDate,AccountNumber,Sum(Amount) as Amount from tblInvoiceDetails where [email protected] Group By InvoiceID,CreationDate,AccountNumber,DeleteStatus
END
alter procedure uspCustomerInvoiceGetlist1(@CustomerID varchar(50)) as
Begin
Declare @InvoiceID int, @Balance float
Declare MyCur Cursor for select InvoiceID from tblInvoiceHeader where [email protected]
Open MyCur
Fetch next from mycur into @InvoiceID
While @@Fetch_Status=0
Begin
set @Balance=(select sum(Balance) from tblInvoicePaymentDetails where [email protected] and [email protected])
print @Balance
if @Balance!=0
SELECT h.DeleteStatus,h.InvoiceID,CONVERT(varchar(16),h.CreationDate,101) + ' ' +
CONVERT(varchar(16),h.CreationDate,8) as CreationDate,h.AccountNumber,Sum(h.Amount) as Amount, @Balance as Balance from tblInvoiceDetails h inner join tblInvoicePaymentDetails p on h.CustomerID=p.CustomerID and [email protected]
Group By h.InvoiceID,h.CreationDate,h.AccountNumber,h.DeleteStatus
else
SELECT DeleteStatus,InvoiceID,CONVERT(varchar(16),CreationDate,101) + ' ' +
CONVERT(varchar(16),CreationDate,8) as CreationDate,AccountNumber,Sum(Amount) as Amount, 0 as Balance from tblInvoiceDetails where [email protected] and [email protected] Group By InvoiceID,CreationDate,AccountNumber,DeleteStatus
Fetch Next From MyCUr into @InvoiceID
End
Close Mycur
Deallocate Mycur
End
输出就是这样正确的(两个输出基于条件的两个更)
Status InvoiceID Date account no Amount Balance
1 1009 06/21/2011 10:22:15 10009 450 350
Status InvoiceID Date account no Amount Balance
1 1010 06/21/2011 10:22:33 100000 690 0
但我可以结合在ASP.NET 2.0在网格视图中的所有的值(两者)。这怎么可能?
假设二者多个表显示基于条件如何能够先生 – hmk
您可以根据需要合并所有DataTable并遵循相同的操作。 – thevan
嗨。我编辑了我的答案。按照这个。这可能会帮助你。 – thevan