-1

假设没有。想要在给定日期的两天前通过使用 SQL Server 和 asp.net 的数据库自动在数据库中发送提醒(电子邮件)的用户。

请帮忙..

假设我有user_db一个包含列的表

Auto_id, user_id, email_id, Inspection_Date, IsInterested

所以上面列的值是

1,user1,a@yahoo.com,30-01-2013,Yes
2,user2,b@yahoo.com,01-02-2013,Yes
3,user3,c@yahoo.com,30-01-2013,Yes
4,user4,d@yahoo.com,01-01-2013,Yes

如果用户有兴趣查看详细信息,则IsInterested列中的值包含Yes然后电子邮件警报应在Inspection_Date自动给出的 2 天之前发送...

怎么做?

4

2 回答 2

1
List<int> CustomersToEmail = new List<int>();

SqlDataReader rdr = null;
var connection = new SqlConnection("Connection String");
var cmd = new SqlCommand("SELECT * FROM user_db", connection);

rdr = cmd.ExecuteReader();

while (rdr.Read())
{
    DateTime DT = (DateTime)rdr["Inspection_Date"];
    int CustomerID = (int)rdr["user_id"];

    if ((DT - DateTime.Now).TotalDays <= 2)
    {
        CustomersToEmail.Add(CustomerID);
    }

}

EmailAllCustomers(CustomersToEmail);

上面的代码构建了一个在检查日期后 2 天内的客户列表。我建议您为该人是否已通过电子邮件添加一个布尔列,以防止重复。您可以通过在您的global.asax.

于 2013-10-20T06:35:23.447 回答
0

看起来您正在尝试实现订阅系统。与 php/linux 环境中的 cronjobs 不同,如果您在远程主机上,则不能在 windows 中使用调度程序。但是您可以依赖 SQL 作业和数据库邮件。我认为使用两者都可以解决您的问题。

于 2013-10-20T06:31:56.387 回答