我一直试图让它工作大约 6 个小时,但似乎无法在我的代码中找到解决方案或错误......
基本上,代码应该选择比当前日期/时间晚 2 分钟的日期/时间的每个实例,但由于某种原因,它只返回一个实例。我尝试了很多方法来解决这个问题,我不可能把它们都写下来。
我有两种方法removedexpiredusers()
和getexpiredusersdate()
.
Getexpiredusersdate()
应该检索添加的每条记录的日期/时间并将它们提供给removeexpiredusers()
应该使用该方法过滤掉哪些记录比当前日期晚两分钟以及是否删除它们。
两分钟的删除时间纯粹是为了测试,因为计划是在 24 小时后将其更改为删除用户帐户,为用户提供一天的临时帐户。
到目前为止,这是我的代码,任何帮助表示赞赏
private void removeExpiredUsers()
{
while (DateTime.Now >= getExpiredUsersDate().AddMinutes(2))
{
//remove the user
dal.spDeleteExpiredUsers(getExpiredUsersDate());
}
}
private DateTime getExpiredUsersDate()
{
DateTime date = new DateTime();
try
{
using (SqlDataReader datareader = dal.getUsers())
{
while (datareader.Read())
{
date = ((DateTime)datareader["DateAdded"]);
MessageBox.Show(date.ToString());
}
}
}
catch (SqlException sqlex) { }
catch (Exception ex) { }
return date;
}
编辑
我也要在这里包含存储过程
获取用户
Create proc spGetUsers
as
Begin
SELECT *
FROM [User]
ORDER BY Username
End
* spDeleteExpiredUsers
Create proc spDeleteExpiredUsers
@DateAdded datetime
as
Begin
DELETE
FROM [User]
WHERE DateAdded = @DateAdded
End