Im not sure i quite understand your question, but one thing, please please please for the sake of your coworkers or whatever poor soul may come behind you do not write your sql like that. It is a NIGHTMARE to maintain when written like what you have posted. Not saying mine is perfect either (and its not going to be for how fast i threw this together) but for your future sanity and those around you, refactor your sql.
Now im not sure i entirely understand your question but i saw some issues with your date comparison that i thought needed extra parenthesis around it in order for your query to work. I've also thrown together a sample in c# looping on the data reader where you can then pull values from your query and do whatever logic you are trying to do from there.
string ConnectionString = String.Format(@"Data Source = {0};User Id={1}; password={2}; Initial Catalog = {3};",
ConfigurationManager.AppSettings["DB_Server"],
ConfigurationManager.AppSettings["DB_User"],
ConfigurationManager.AppSettings["DB_Pass"],
ConfigurationManager.AppSettings["DB_Name"]);
string query = string.Format(@"SELECT
S.Name,
S.DOB,
S.Mobileno,
S.Weddingday
FROM
BirthDayWish AS S
WHERE S.Active <> 'D'
AND
year(DOB) <> '1900'
AND
(month(DOB) = month('{0}') AND day(DOB) = day ('{0}'))
OR
(year(Weddingday) <> '1900' AND month(Weddingday) = month('{0}') AND day(Weddingday) = day ('{0}'))", DateTime.Now);
SqlConnection connection = new SqlConnection(ConnectionString);
connection.Open();
SqlCommand queryCMD = new SqlCommand(query, connection);
SqlDataReader queryReader = queryCMD.ExecuteReader();
while (queryReader.Read())
{
}