Asp.net 需要帮助开发SQL查询吗

Asp.net 需要帮助开发SQL查询吗,asp.net,sql,security,sdf,Asp.net,Sql,Security,Sdf,我正在尝试开发一个SQL查询,以帮助我从基于ASP.NET的网站中提取一些数据。我正在使用WebMatrix在基于ASP.NET的网站上开发SQL compact数据库(sdf) 我试图在我的网站上实现一个代码,每月对数据库进行一次春季清理。我需要删除那些由用户创建但从未激活的帐户。因此,为了释放用户ID并管理数据库大小,我想我应该在数据库上运行一个查询,以获取那些尚未得到用户确认且创建日期已超过20天的帐户 数据库结构是,我的用户表称为“Users”。它有一个用户名(自动编号)、电子邮件、全名

我正在尝试开发一个SQL查询,以帮助我从基于ASP.NET的网站中提取一些数据。我正在使用WebMatrix在基于ASP.NET的网站上开发SQL compact数据库(sdf)

我试图在我的网站上实现一个代码,每月对数据库进行一次春季清理。我需要删除那些由用户创建但从未激活的帐户。因此,为了释放用户ID并管理数据库大小,我想我应该在数据库上运行一个查询,以获取那些尚未得到用户确认且创建日期已超过20天的帐户

数据库结构是,我的用户表称为“Users”。它有一个用户名(自动编号)、电子邮件、全名等字段

由ASP的WebSecurity创建的表称为“webpages\U Membership”。它有UserID(autonumber)、CreationDate、isconfirm(帐户是否已激活)等字段

我不擅长开发SQL查询。我面临的问题是,当使用Membership.DeleteUser方法(参数设置为DeleteAllRecords)删除用户时,它会删除我的Users表中相关用户的行,而在自己的表“webpages\u Membership”中不会执行任何操作。当用户尝试登录时,它只是检查电子邮件(userid)是否存在于my Users表中。因此,从长远来看,“webpages_Membership”中出现的帐户在“Users”表中不存在,因为它们已被删除。熟悉WbeSecurity行为的人一定经历过以上所有这些

我正在尝试开发一个查询,该查询将查找“webpages\u Membership”表,获取那些IsConfiged字段设置为False的行(这意味着那些帐户尚未激活),并确保“webpages\u Membership”中的UserID字段也存在于“Users”表中(这将确保以前未删除帐户).

从网页中选择wm.*成员wm内部加入用户u
关于wm.UserID=u.UserID
其中wm.isconfired='false'

DATEADD(dd,20,wm.CreationDate)准确地说,在写这个问题时,我必须写关于Web安全代码如何运行的背景。正是由于它的行为,我无法为它编写合适的查询。请发布到现在为止的代码,以开始一些内容。如果可能的话,还可以改进表结构的显示方式,以便能够使用它。如果你也发布一些数据进行测试,那就更好了。我使用MS Access自己开发了一个查询:
SELECT users.ID,webpages\u Membership.isconfirm FROM webpages\u Membership,users WHERE((users.ID)=[webpages\u Membership].[ID])和((webpages\u Membership.isconfired)=True)它似乎给了我奇怪的结果。我投票结束这个问题,因为它似乎过于局限于OP的要求,没有以可能推广到其他人的要求的方式进行解释,并且没有代码。谢谢你的回答。我在MS Access中尝试了您对我的虚拟数据库结构的查询。它给了我一个未定义函数GetDate()的错误。此函数在MS Access上不可用吗?我已在我的SQL compact数据库(可识别GetDate)中应用了您的查询。虽然查询正在返回相关行,但date函数工作不正常。它返回的creationdate行甚至不到20行。我需要自创建日期起已超过20天的帐户。请尝试此更新的查询。我在getdate中添加了20天,而不是CreatedOnDate。我认为这仍然不正确。让我再解释一遍。查询应获取从今天起20多天前创建的记录。我自己改变了一些事情。我认为它应该是:
WHERE wm.CreationDate,无论如何,它现在可以工作了。谢谢阿南和所有人。我一个人要到这里才能到达。
select wm.* from webpages_Membership wm inner join Users u
on wm.UserID = u.UserID 
Where wm.IsConfirmed = 'false'
and DATEADD(dd,20,wm.CreationDate) <= getdate()