2013-10-20 2 views
-2

없다고 가정합니다. SQL Server 및 asp.net을 사용하여 데이터베이스를 통해 자동으로 데이터베이스에 지정된 날짜의 2 일 이전에 미리 알림 (전자 메일)을 보내려는 사용자의 수입니다.SQL 서버 및 asp.net을 사용하여 데이터베이스를 통해 사용자에게 자동으로 알림을 보내는 방법

도와주세요 ..

사용자가 세부 사항을보고 관심이 있다면 나는 그래서 위의 열에 대한 값은

1,user1,[email protected],30-01-2013,Yes 
2,user2,[email protected],01-02-2013,Yes 
3,user3,[email protected],30-01-2013,Yes 
4,user4,[email protected],01-01-2013,Yes 

Auto_id, user_id, email_id, Inspection_Date, IsInterested 

같은 열이 포함 된 테이블 user_db되어 있다고 가정 IsInterested 열의 값이 Yes이면 이메일 알림은 주어진 날로부터 2 일 전에 가야합니다 Inspection_Date 자동으로 ...

어떻게 하시겠습니까?

+0

나는 저장 프로 시저가 처음이므로 any1 cane 인 경우 모두에게 감사 할 것입니다. 미리 알림을 가져 오는 저장 프로 시저를 작성하는 데 도움이됩니다. 미리 감사드립니다. – user2898210

답변

0

구독 시스템을 구현하려는 것 같습니다. php/linux 환경에서 cronjob과 달리 원격 호스트에있는 경우 Windows에서 스케줄러를 사용할 수 없습니다. 그러나 SQL 작업 및 데이터베이스 메일에 의존 할 수 있습니다. 나는 둘 다 당신의 문제를 해결할 것이라고 생각합니다.

+0

제안을 위해 Thnks하지만 여전히 어떻게 작성합니까? 테이블에서 날짜를 가져오고 저장 프로 시저에서 얻은 날짜보다이 저장 프로 시저를 실행하고 메일을 보내기 전에 작업을 예약하는 저장 프로 시저를 사용할 수 있습니다. 감사합니다. 감사합니다. – user2898210

+0

다른 대안이 필요합니다. – user2898210

+0

제발 도와주세요. 나를 밖으로 고맙게 할 것입니다. 모두 – user2898210

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의 타이머 루프에서 예약 된 Windows 서비스를 통해이 메서드를 호출 할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. Zerkey를 알려 주셔서 감사합니다. 웹 사이트가 서버에 배포 될 때 알려주시겠습니까?이 기능이 어떻게 작동할까요? Aotuomatically Daily Weekly에도 마찬가지입니다. – user2898210

+0

전혀 다른 문제입니다. 여기 질문 : http://stackoverflow.com/questions/11354814/execute-method-in-global-asax-every-few- minutes – Zerkey