Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7626465
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 31, 20262026-05-31T05:19:42+00:00 2026-05-31T05:19:42+00:00

I am developing an intranet web application which is a Quiz Engine. The admin

  • 0

I am developing an intranet web application which is a Quiz Engine. The admin has the ability to send the quizzes to all users in the database by clicking on a link to the page called SendingQuiz. Everything works well, but my problem is the email will be sent to all usres even if there is no quiz in the database. So how I should modify this code to avoid happening of this?

For your information, in the database design, I have a table called Quiz which consists of:
QuizID, Title, Description, IsSent

What I want now is instead of sending emails without any available quizzes in the database which will let the user facing dump error page, I want to the system to check if there is a quiz in the system or not. If not, it should not send anything and tell the Admin that there is no more quizzes in the database. So how to do that?

My C# code:

protected void SendEmail(string toAddresses, string fromAddress, string MailSubject, string MessageBody, bool isBodyHtml)
    {
        SmtpClient sc = new SmtpClient("Mail Server");
        try
        {
            MailMessage msg = new MailMessage();
            msg.From = new MailAddress("Test@CompanyDomain.com", "My Application");

            // In case the mail system doesn't like no to recipients. This could be removed
            //msg.To.Add("Test@CompanyDomain.com");

            msg.Bcc.Add(toAddresses);
            msg.Subject = MailSubject;
            msg.Body = MessageBody;
            msg.IsBodyHtml = isBodyHtml;
            //Response.Write(msg);
            sc.Send(msg);
        }
        catch (Exception ex)
        {
            throw ex;
        }

    }

    protected void SendEmailTOAllUser()
    {
        string connString = "Data Source=localhost\\sqlexpress;Initial Catalog=Test;Integrated Security=True";

        using (SqlConnection conn = new SqlConnection(connString))
        {
            var sbEmailAddresses = new System.Text.StringBuilder(2000);
            string quizid = "";

            // Open DB connection.
            conn.Open();

            string cmdText = "SELECT MIN (QuizID) As mQuizID FROM dbo.QUIZ WHERE IsSent <> 1";
            using (SqlCommand cmd = new SqlCommand(cmdText, conn))
            {
                SqlDataReader reader = cmd.ExecuteReader();
                if (reader != null)
                {
                    while (reader.Read())
                    {
                        // There is only 1 column, so just retrieve it using the ordinal position
                        quizid = reader["mQuizID"].ToString();

                    }
                }
                reader.Close();
            }

            string cmdText2 = "SELECT Username FROM dbo.employee";
            using (SqlCommand cmd = new SqlCommand(cmdText2, conn))
            {
                SqlDataReader reader = cmd.ExecuteReader();
                if (reader != null)
                {
                    while (reader.Read())
                    {
                        var sName = reader.GetString(0);
                        if (!string.IsNullOrEmpty(sName))
                        {
                            if (sbEmailAddresses.Length != 0)
                            {
                                sbEmailAddresses.Append(",");
                            }
                            // Just use the ordinal position for the user name since there is only 1 column
                            sbEmailAddresses.Append(sName).Append("@CompanyDomain.com");
                        }
                    }
                }
                reader.Close();
            }

            string cmdText3 = "UPDATE dbo.Quiz SET IsSent = 1 WHERE QuizId = @QuizID";
            using (SqlCommand cmd = new SqlCommand(cmdText3, conn))
            {
                // Add the parameter to the command
                var oParameter = cmd.Parameters.Add("@QuizID", SqlDbType.Int);

                var sEMailAddresses = sbEmailAddresses.ToString();
                string link = "<a href='http://Test/StartQuiz.aspx?testid=" + quizid + "'> Click here to participate </a>";
                string body = @"Good day, <br /><br />
                                <b> Please participate in the new short safety quiz </b>"
                                    + link +
                                    @"<br /><br />

                            ";

                int sendCount = 0;
                List<string> addressList = new List<string>(sEMailAddresses.Split(','));
                StringBuilder addressesToSend = new StringBuilder();

                for (int userIndex = 0; userIndex < addressList.Count; userIndex++)
                {
                    sendCount++;
                    if (addressesToSend.Length > 0)
                        addressesToSend.Append(",");

                    addressesToSend.Append(addressList[userIndex]);
                    if (sendCount == 10 || userIndex == addressList.Count - 1)
                    {
                        SendEmail(addressesToSend.ToString(), "", "Notification of New Weekly Safety Quiz", body, true);
                        addressesToSend.Clear();
                        sendCount = 0;
                    }
                }


                // Update the parameter for the current quiz
                oParameter.Value = quizid;
                // And execute the command
                cmd.ExecuteNonQuery();
            }
            conn.Close();
        }
    }
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-31T05:19:43+00:00Added an answer on May 31, 2026 at 5:19 am

    You dont need to use While for the reader as you are expecting only one quizid and you can use an if clause to check if quizid before sending the mail

    protected void SendEmail(string toAddresses, string fromAddress, string MailSubject, string MessageBody, bool isBodyHtml)
        {
            SmtpClient sc = new SmtpClient("MAIL.Aramco.com");
            try
            {
                MailMessage msg = new MailMessage();
                msg.From = new MailAddress("pssp@aramco.com", "PMOD Safety Services Portal (PSSP)");
    
                // In case the mail system doesn't like no to recipients. This could be removed
                //msg.To.Add("pssp@aramco.com");
    
                msg.Bcc.Add(toAddresses);
                msg.Subject = MailSubject;
                msg.Body = MessageBody;
                msg.IsBodyHtml = isBodyHtml;
                //Response.Write(msg);
                sc.Send(msg);
            }
            catch (Exception ex)
            {
                throw ex;
            }
    
        }
    
        protected void SendEmailTOAllUser()
        {
            string connString = "Data Source=localhost\\sqlexpress;Initial Catalog=psspdbTest;Integrated Security=True";
    
            using (SqlConnection conn = new SqlConnection(connString))
            {
                var sbEmailAddresses = new System.Text.StringBuilder(2000);
                string quizid = "";
    
                // Open DB connection.
                conn.Open();
    
                string cmdText = "SELECT MIN (QuizID) As mQuizID FROM dbo.QUIZ WHERE IsSent <> 1";
                using (SqlCommand cmd = new SqlCommand(cmdText, conn))
                {
                    SqlDataReader reader = cmd.ExecuteReader();
                    if (reader != null)
                    {
                        if(reader.Read())
                        {
                            // There is only 1 column, so just retrieve it using the ordinal position
                            quizid = reader["mQuizID"].ToString();
    
                        }
                    }
                    reader.Close();
                }
    
                string cmdText2 = "SELECT Username FROM dbo.employee";
                using (SqlCommand cmd = new SqlCommand(cmdText2, conn))
                {
                    SqlDataReader reader = cmd.ExecuteReader();
                    if (reader != null)
                    {
                        while (reader.Read())
                        {
                            var sName = reader.GetString(0);
                            if (!string.IsNullOrEmpty(sName))
                            {
                                if (sbEmailAddresses.Length != 0)
                                {
                                    sbEmailAddresses.Append(",");
                                }
                                // Just use the ordinal position for the user name since there is only 1 column
                                sbEmailAddresses.Append(sName).Append("@aramco.com");
                            }
                        }
                    }
                    reader.Close();
                }
    
                string cmdText3 = "UPDATE dbo.Quiz SET IsSent = 1 WHERE QuizId = @QuizID";
                using (SqlCommand cmd = new SqlCommand(cmdText3, conn))
                {
                    // Add the parameter to the command
                    var oParameter = cmd.Parameters.Add("@QuizID", SqlDbType.Int);
    
                    var sEMailAddresses = sbEmailAddresses.ToString();
                    string link = "<a href='http://pmv/pssp/StartQuiz.aspx?testid=" + quizid + "'> Click here to participate </a>";
                    string body = @"Good day, <br /><br />
                                    <b> Please participate in the new short safety quiz </b>"
                                        + link +
                                        @"<br /><br />
                                Also, give yourself a chance to gain more safety culture by reading the PMOD Newsletter.
                                <br /> <br /><br /> <br />
                                This email was generated using the <a href='http://pmv/pssp/Default.aspx'>PMOD Safety Services Portal (PSSP) </a>. 
                                Please do not reply to this email.
                                ";
    
                    int sendCount = 0;
                    List<string> addressList = new List<string>(sEMailAddresses.Split(','));
                    StringBuilder addressesToSend = new StringBuilder();
    if(!string.IsNullOrEmpty(quizid )){
                    for (int userIndex = 0; userIndex < addressList.Count; userIndex++)
                    {
                        sendCount++;
                        if (addressesToSend.Length > 0)
                            addressesToSend.Append(",");
    
                        addressesToSend.Append(addressList[userIndex]);
                        if (sendCount == 10 || userIndex == addressList.Count - 1)
                        {
                            SendEmail(addressesToSend.ToString(), "", "Notification of New Weekly Safety Quiz", body, true);
                            addressesToSend.Clear();
                            sendCount = 0;
                        }
                    }
    }
    
                    // Update the parameter for the current quiz
                    oParameter.Value = quizid;
                    // And execute the command
                    cmd.ExecuteNonQuery();
                }
                conn.Close();
            }
        }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I am developing an intranet web application which is a Quiz Engine. I have
I am developing an intranet web application which is a Quiz Engine. Now, I
I am developing an intranet web application that provides the users with short quizzes.
I am developing an intranet web application which should provide its users with a
I am developing an ASP.NET intranet web application that provides short quizzes to the
I am developing an intranet web application which works as a Suggestions Box. The
I am developing an intranet web application. I am working now on the User
I am developing an intranet web application. And I want to develop simple print
I am developing a small intranet based web application. I have YSlow installed and
I'm developing a kind of web-based intranet application that runs on wamp, other systems/hosts

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.