首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

动态填充DataGrid^解决办法

2012-01-22 
动态填充DataGrid^^^^^^^^^^^^^^^项目中要做一个查询统计,(要跨库操作表)我用的方法是在存储过程中把数据

动态填充DataGrid^^^^^^^^^^^^^^^
项目中要做一个查询统计,(要跨库操作表)
我用的方法是在存储过程中把数据拼成了一张临时表,
但这个方法项目经理不同意


要做成前台好控制的方法:动态填充DataGrid,有那位高手帮助下,能给个小实例最好地址也成

下面是三个返回的DataSet    

PortalId         customs_name                                                                              
-----------   -------------
0                       海关总署
91                     广东分署
92                     天津特派办
93                     上海特派办
159                   北京海关
169                   天津海关
171                   石家庄海关
176                   太原海关
99                     呼和浩特海关
164                   满洲里海关
101                   大连海关
102                   沈阳海关
179                   长春海关
118                   哈尔滨海关
27                     上海海关
119                   南京海关
120                   杭州海关
121                   宁波海关
122                   合肥海关
123                   福州海关
156                   厦门海关
167                   南昌海关
105                   青岛海关
106                   郑州海关
107                   武汉海关
108                   长沙海关
31                     广州海关
109                   深圳海关
145                   拱北海关
151                   汕头海关
114                   黄埔海关
115                   江门海关
147                   湛江海关
150                   南宁海关
128                   海口海关
153                   重庆海关
130                   成都海关
142                   贵阳海关
174                   昆明海关


182                   拉萨海关
133                   西安海关
125                   兰州海关
190                   西宁海关
127                   银川海关
166                   乌鲁木齐海关
135                   上海关校
136                   秦皇岛关校

(所影响的行数为   47   行)


PortalId         TOTAL               EmailServer   SmsServer      
-----------   -----------   -----------   -----------  
0                       11                     5                       6
101                   1                       1                       0


Type     Portal_ID       Cout                
-----   -----------   -----------  
EMail   0                       7
SMS       0                       30
下面是我做的写的存储过程,

后台数据库:拼成的存储过程()

Create           proc   sp_totalAll
@Portal_ID   int,
@StartTime   datetime,
@EndTime   datetime
as
CREATE   TABLE   #T1   (PID   INT   NOT   NULL   PRIMARY   KEY,CUSTOMS_NAME   NVARCHAR(50),TOTAL   INT,STOTAL   INT,ETOTAL   INT,SCOUNT   int,ECOUNT   int)
DECLARE   @vcSql   VARCHAR(2400)

set   @vcSql   =   'INSERT   INTO   #T1   ([PID],[CUSTOMS_NAME])
select   haiguan..Portal_customs.PortalId,haiguan..customs_list.customs_name   from   haiguan..customs_list   left   join   haiguan..Portal_customs     on   haiguan..customs_list.customs_code=haiguan..Portal_customs.customs_code     where   haiguan..customs_list.superior= ' '0000 ' '   Order   By   ISNULL(haiguan..customs_list.SetOrder,   10000) '


set   @vcSql   =   @vcSql   +   'UPDATE   #T1   SET   TOTAL   =   S1.TOTAL,   STOTAL   =   S1.SmsServer,   ETOTAL   =   S1.EmailServer   FROM  
(SELECT   POTAL_ID,Count(*)   As   TOTAL,
Sum(Case   MSG_TYPE   When   0   then   1   Else   0   End)   As   EmailServer,  
                Sum(Case   MSG_TYPE   When   1   then   1   Else   0   End)   As   SmsServer
FROM   SMS_MODULEINFO   Group   By   POTAL_ID)   S1
WHERE   #T1.PID   =   S1.POTAL_ID   '

set   @vcSql   =   @vcSql   +   'update   #T1   set   SCOUNT   =   S1.Cout
from
(select   Portal_ID,   count(Portal_ID)   as   Cout   from   SMS_INFO   where   1=1   and    


Receive_TIME   <=   ' ' '   +   cast(@EndTime   as   varchar(20))   + ' ' '     and   Receive_TIME   > =   ' ' '   +   cast(@StartTime   as   varchar(20))   + ' ' '  
group   by   Portal_ID)   S1
where   #T1.PID   =   S1.Portal_ID '

set   @vcSql   =   @vcSql   +   '   update   #T1   set   ECOUNT   =   S1.Cout
from
(select   Portal_ID,   count(Portal_ID)   as   Cout   from   EMAIL_INFO   where   1=1   and    
Receive_TIME   <=   ' ' '   +   cast(@EndTime   as   varchar(20))   + ' ' '     and   Receive_TIME   > =   ' ' '   +   cast(@StartTime   as   varchar(20))   + ' ' '  
group   by   Portal_ID)   S1
where   #T1.PID   =   S1.Portal_ID '

if(@Portal_ID <> -1)
begin
Set   @vcSql   =   @vcSql   +   '   and   #T1.PID   =   '   +   cast(@Portal_ID   as   varchar(20))
end

exec(@vcSql)
select   PID,CUSTOMS_NAME,   isNULL(TOTAL,0)   TOTAL,isnull(STOTAL,0)   STOTAL,isnull(ETOTAL,0)   ETOTAL,isnull(SCOUNT,0)   SCOUNT,isnull(ECOUNT,0)   ECOUNT   from   #T1  

drop   table   #T1
GO
SET   QUOTED_IDENTIFIER   OFF  
GO
SET   ANSI_NULLS   ON  
GO


这是我要显示在WEB页面上的结果  也是我存储过程所得出的结果,

PID                   CUSTOMS_NAME           TOTAL               STOTAL             ETOTAL             SCOUNT             ECOUNT      
-----------   -------------------------------------------------   -----------   -----------  
0                       海关总署                     11                     6                       5                       0                       0
27                     上海海关                     0                       0                       0                       0                       0
31                     广州海关                     0                       0                       0                       0                       0
91                     广东分署                     0                       0                       0                       0                       0


92                     天津特派办                 0                       0                       0                       0                       0
93                     上海特派办                 0                       0                       0                       0                       0
99                     呼和浩特海关             0                       0                       0                       0                       0
101                   大连海关                     1                       0                       1                       0                       0
102                   沈阳海关                     0                       0                       0                       0                       0
105                   青岛海关                     0                       0                       0                       0                       0
106                   郑州海关                     0                       0                       0                       0                       0
107                   武汉海关                     0                       0                       0                       0                       0


108                   长沙海关                     0                       0                       0                       0                       0
109                   深圳海关                     0                       0                       0                       0                       0
114                   黄埔海关                     0                       0                       0                       0                       0
115                   江门海关                     0                       0                       0                       0                       0
118                   哈尔滨海关                 0                       0                       0                       0                       0
119                   南京海关                     0                       0                       0                       0                       0
120                   杭州海关                     0                       0                       0                       0                       0
121                   宁波海关                     0                       0                       0                       0                       0


122                   合肥海关                     0                       0                       0                       0                       0


[解决办法]
分为三个存储过程让他在前台选择,不同的选择就填充不同的DataSet就可以了啊。
[解决办法]
怎么结果上

SCOUNT ECOUNT
----------- -----------

两个字段都为0

热点排行