【问题标题】:How to terminate the users and update the label of the current users remaining?如何终止用户并更新当前剩余用户的标签?
【发布时间】:2018-02-08 09:53:27
【问题描述】:

我创建了成员并将它们存储到数据库中。我有一个标签,它计算存储在数据库中的所有用户,每次保存数字都会增加。我还有一个终止按钮,它按保单号终止,所以这就是我想要的。当您终止成员时,它还必须从标签中更新当前成员。例如,成员总数 = 10,当您终止用户时,成员总数标签也必须更新为 9。我该怎么做?

这是我到目前为止所做的......

  1. 加载成员总数

    protected void Page_Load(object sender, EventArgs e)
    {
        lblTotal.Text = "Total Members Captured : " + CountMembersCaptured();
    } 
    
  2. 成员总数方法

    protected int CountMembersCaptured()
    {
        List<SP_COUNTPOLICYMEMBERSResult> _MemberCountList = _dc.SP_COUNTPOLICYMEMBERS().ToList();
        return _MemberCountList.Count();
    }
    
  3. 获取成员总数的过程

       ALTER PROCEDURE [dbo].[SP_COUNTPOLICYMEMBERS]
       AS
       BEGIN        
       SELECT  [DateID]
      ,[PolicyNumber]
      ,[Name]
      ,[PolicyName]
      ,[InceptionDate]
      ,[Active]   
      FROM [dbo].[tblPolicy]
      END
    
  4. 终止按钮

    protected void btnTerminate_Click(object sender, EventArgs e)
    {
    
        if (Session["DateID"] != null)
        {
            List<tblPolicy> _PolicyMemberList = _dc.tblPolicies.Where(a => a.DateID == int.Parse(Session["DateID"].ToString())).ToList();
    
            if (_PolicyMemberList != null)
            {
                if (_PolicyMemberList.Count() > 0)
                {
                    foreach (tblPolicy _PolicyMember in _PolicyMemberList)
                    {
                        _PolicyMember.Active = false;
                    }
    
                    _dc.SubmitChanges();
                    lblresults.Text = "Confirmation: Member has been terminated/deleted successfully.!";
                }
            }
        }
    }
    

【问题讨论】:

  • tblPolicy 表中active 列的可能值是多少?
  • 该值为 1,因为它处于活动状态。所以当你终止它时,它的值将是 0。活动列的数据类型是咬
  • @JuniorLinq,看看我的回答。

标签: c# asp.net linq-to-sql terminate


【解决方案1】:
ALTER PROCEDURE [dbo].[SP_COUNTPOLICYMEMBERS]
AS
BEGIN        
SELECT  [DateID]
,[PolicyNumber]
,[Name]
,[PolicyName]
,[InceptionDate]
,[Active]   
FROM [dbo].[tblPolicy] WHERE [Active]=1
END

protected void btnTerminate_Click(object sender, EventArgs e)
{

if (Session["DateID"] != null)
{
    List<tblPolicy> _PolicyMemberList = _dc.tblPolicies.Where(a => a.DateID == int.Parse(Session["DateID"].ToString())).ToList();

    if (_PolicyMemberList != null)
    {
        if (_PolicyMemberList.Count() > 0)
        {
            foreach (tblPolicy _PolicyMember in _PolicyMemberList)
            {
                _PolicyMember.Active = false;
            }

            _dc.SubmitChanges();
            lblresults.Text = "Confirmation: Member has been terminated/deleted successfully.!";
            lblTotal.Text = "Total Members Captured : " + CountMembersCaptured();
        }
    }
}
}

【讨论】:

  • 它仍然没有更新标签..它保持不变。我已经按照你说的做了。
  • 你有什么异常吗?否则它的代码工作正常。
  • 我进行了调试,没有出现任何异常。是的,代码工作正常,因为每次保存时都会更新标签
  • 调试用户终止按钮单击代码是否正常工作。
【解决方案2】:

在选择查询中添加 Where 子句。

 ALTER PROCEDURE [dbo].[SP_COUNTPOLICYMEMBERS]
   AS
   BEGIN        
   SELECT  [DateID]
  ,[PolicyNumber]
  ,[Name]
  ,[PolicyName]
  ,[InceptionDate]
  ,[Active]   
  FROM [dbo].[tblPolicy] where Active=1
  END

希望这会有所帮助...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-29
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    • 1970-01-01
    相关资源
    最近更新 更多