l 事件:
修改数据之后,发现旧数据和新数据同时在页面上显示出来了,于是只好从cs文件中找到存储过程,修改存储过程。
但是在两个页面和一个report server 中,调用的两个存储过程:
- sproc_Region_Get_List_Filtered Create Project 页面
- sproc_Region_Get_List Update user页面和report server 调用了此存储过程
修改之后并不能显示出同样的结果,为了快速实现页面过滤出有效数据(新数据),只好修改两个页面的cs文件。
l 修改.cs 文件的过程:
在修改Update User 和Create Project页面时 都只在调用该存储过程的代码下新添加
源代码 是:
this.drpDwnRegionList.DataSource= ds.Tables[0];
修改掉的代码 是:
//LMY 20160622:
DataViewdv = ds.Tables[0].DefaultView;
dv.RowFilter = "Isactive=1";
DataTablenewtable = dv.ToTable();
this.drpDwnRegionList.DataSource= newtable;
l 修改 storeProcedure文件的过程:
由于.cs文件进行了修改,相应的存储过程也要对应的变化来匹配前端页面调用的IsActive=1的过滤条件。
无非 是在存储过程的select条件中多加了一个 select 条件 就是IsActive .
但是 其中有一个存储过程需要union一个select语句,深红色字部分是后加上去的,同时 union中的深红色字也要相应的加。这样才能连接起来。
Union一定要前后select的列是一样的。
alter Procedure [dbo].[sproc_Region_Get_List]
@ActiveOnly Bit = 0
AS
SET NOCOUNT ON
SELECT Region.RegionIdAS ID, Region.RegionName as Label, Region.RegionCode as RegionCode,Region.IsActive as IsActive
FROM dbo.Ref_Region Region
WHERE
(
(@ActiveOnly =0) or (Region.IsActive = 1)
)
UNION
--LMY 20160622
SELECT NULL AS ID, 'All Regions' AS Label, NULL AS RegionCode ,1 AS IsActive
ORDER BY Label
SET NOCOUNT OFF