2011-03-15 75 views
0

在我的gridview中,我有7个复选框,同时更新最后检查过的复选框,它在数据库中更新了其他值已被清除..例如我们有day_id,因为mon是1 ,tue为2,wen为3,thurs为4,fri为5,sat为6,sun为7(如果我查了mon和tues复选框意味着只有tue复选框值已更新,数据库mon值更新为null 。有天只有大卫·我会把没有seprate列....复选框值没有按行更新

,这是我的编码....

if (chkMonday.Checked == true) 
    { 
     int MonStatus; 
     MonStatus = 1; 
     SwipeCardLeaveFacade.UpdateCalendarDay(Calenderid, MonStatus, UserContext, RequestContext); 
    } 
    if (chkTuesday.Checked == true) 
    { 
     int TueStatus; 
     TueStatus = 2; 
     SwipeCardLeaveFacade.UpdateCalendarDay(Calenderid, TueStatus, UserContext, RequestContext); 
    } 
    if (chkWednesday.Checked == true) 
    { 
     int WedStatus; 
     WedStatus = 3; 
     SwipeCardLeaveFacade.UpdateCalendarDay(Calenderid, WedStatus, UserContext, RequestContext); 
    } 
    if (chkThrusday.Checked == true) 
    { 
     int ThuStatus; 
     ThuStatus = 4; 
     SwipeCardLeaveFacade.UpdateCalendarDay(Calenderid, ThuStatus, UserContext, RequestContext); 
    } 
    if (chkFriday.Checked == true) 
    { 
     int FriStatus; 
     FriStatus = 5; 
     SwipeCardLeaveFacade.UpdateCalendarDay(Calenderid, FriStatus, UserContext, RequestContext); 
    } 
    if (chkSaturday.Checked == true) 
    { 
     int SatStatus; 
     SatStatus = 6; 
     SwipeCardLeaveFacade.UpdateCalendarDay(Calenderid, SatStatus, UserContext, RequestContext); 
    } 
    if (chkSunday.Checked == true) 
    { 
     int SunStatus; 
     SunStatus = 7; 
     SwipeCardLeaveFacade.UpdateCalendarDay(Calenderid, SunStatus, UserContext, RequestContext); 
    } 

这是我的存储过程....

Create Procedure Sp_Update_LMS_CalendarDay 
( 

    @CalendarDay_CalendarID int,  
    @CalendarDay_DayID int  
)  
as 
update LMS_CalendarDay 
set 
[email protected]_CalendarID, 
[email protected]_DayID 
where 
[email protected]_CalendarID 

我的表列是CalendarDay_CalendarID CalendarDay_DayID这里CalendarDay_DayID意志去为1,2,3,4,5,6,7

回答

0

纠正我,如果我错了。

您所有的日子(周一至周日)的更新函数使用相同的CalendarId。对于例如我查了周一和周二。您的存储过程将使用相同的CalendarId调用两次,从而覆盖上次更新操作。只有周二将在数据库中更新。