如何将SQL server 2005中的游标值检索到ASP.NET 2.0中的gridview?
我根据条件检索两个或多个表数据,因此我在SQL Server 2005中编写如下游标:如何将SQL server 2005中的游标值检索到ASP.NET 2.0中的gridview?,asp.net,sql-server-2005,Asp.net,Sql Server 2005,我根据条件检索两个或多个表数据,因此我在SQL Server 2005中编写如下游标: create PROC [dbo].[uspCustomerInvoiceGetlist] @CustomerID varchar(20) AS BEGIN SELECT DeleteStatus,InvoiceID,CONVERT(varchar(16),CreationDate,101) + ' ' + CONVERT(varchar(16),CreationDate,8)
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 CustomerID=@CustomerID 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 CustomerID=@CustomerID
Open MyCur
Fetch next from mycur into @InvoiceID
While @@Fetch_Status=0
Begin
set @Balance=(select sum(Balance) from tblInvoicePaymentDetails where CustomerId=@CustomerID and InvoiceId=@InvoiceID)
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 h.InvoiceID=@InvoiceID
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 CustomerID=@CustomerID and InvoiceID=@InvoiceID Group By InvoiceID,CreationDate,AccountNumber,DeleteStatus
Fetch Next From MyCUr into @InvoiceID
End
Close Mycur
Deallocate Mycur
End
dt1.Merge(dt2); //dt1 is the DataTable 1 and dt2 is the DataTable 2
输出是这样正确的(基于条件2的两个输出更多)
但是我可以在ASP.NET2.0中绑定网格视图中的所有值(两者)。怎么可能呢?在前端,您将得到两个DataTable。 您只需将这两个数据表合并为一个数据表。 并将DataTable与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 CustomerID=@CustomerID 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 CustomerID=@CustomerID
Open MyCur
Fetch next from mycur into @InvoiceID
While @@Fetch_Status=0
Begin
set @Balance=(select sum(Balance) from tblInvoicePaymentDetails where CustomerId=@CustomerID and InvoiceId=@InvoiceID)
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 h.InvoiceID=@InvoiceID
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 CustomerID=@CustomerID and InvoiceID=@InvoiceID Group By InvoiceID,CreationDate,AccountNumber,DeleteStatus
Fetch Next From MyCUr into @InvoiceID
End
Close Mycur
Deallocate Mycur
End
dt1.Merge(dt2); //dt1 is the DataTable 1 and dt2 is the DataTable 2
将表集获取为DataSet并使用For循环进行合并:我给出了以下代码:
DataTable dtmerge = new DataTable();
for (int i = 0; i < ds.Tables.Count; i++) // ds is the DataSet
{
dtmerge.Merge(ds.Tables[i]);
}
DataTable dtmerge=newdatatable();
for(int i=0;i
假设根据条件显示两个或两个以上的表,当您希望合并并遵循相同的操作时,如何获得所有数据表。