Use a loop to iterate through the results of your query.
SELECT EmailAddress
FROM Customers`
WHERE EmailFlag = 'true'`
AND DATEDIFF(day, GETDATE(),DateOfVisit) >= 90;
Replace day with other units you want to get the difference in, like second, minute etc.
c#:
foreach(DataRow dr in queryResult.Tables[0].Rows)
{
string email = dr["EmailAddress"].ToString();
// Code to send email
//Execute Query UPDATE Customers SET EmailFlag = False WHERE EmailAddress = email
}
This is just a draft. You should replace the comments with the actual code to make it work. No need to fetch from your initial query 1 result at a time.
1
solved How to perform an action on one result at a time in a sql query return that should return multiple results?