2011-12-28 47 views
0

我正在開發一個應用程序,它應該自動向用戶發送測驗。現在,我在寫一個簡單的控制檯應用程序將讀取數據庫中的測驗表,其模式如下工作: QuizID,標題,描述,IsSent如何從數據庫中的表中檢索ID並將其插入SMTP客戶端?

IsSent是位數據類型爲扁平狀指定了是否發送消息的狀態。現在我試圖從數據庫中檢索QuizID和IsSent和做以下邏輯: 如果沒有發送測驗,並將其發送 否則 沒有做任何事情

我寫的代碼量小和我現在掙扎着檢索QuizID和IsSent標誌,並在他們兩個上應用上述邏輯。那麼怎麼做?

我的後臺代碼:

protected void Page_Load(object sender, EventArgs e) 
    { 
     SmtpClient sc = new SmtpClient("MAIL ADDRESS"); 
     MailMessage msg = null; 


     try 
     { 

      msg = new MailMessage("[email protected]", 
       "[email protected]", "Message from PSSP System", 
       "This email sent by the system"); 
      msg.IsBodyHtml = true; 
      sc.Send(msg); 
     } 

     catch (Exception ex) 
     { 
      throw ex; 
     } 

     finally 
     { 
      if (msg != null) 
      { 
       msg.Dispose(); 
      } 
     } 


     //For requesting the Quiz_ID and check the IsSent flag for whether sending it or not 
     string connString = "Data Source=localhost\\sqlexpress;Initial Catalog=psspdb;Integrated Security=True"; 
     string cmdText = "SELECT QuizID, IsSent FROM dbo.QUIZ"; 

     using (SqlConnection conn = new SqlConnection(connString)) 
     { 
      conn.Open(); 
      // Open DB connection. 
      using (SqlCommand cmd = new SqlCommand(cmdText, conn)) 
      { 
       SqlDataReader reader = cmd.ExecuteReader(); 
       While (reader != null){ 
        if (reader.Read()) 
         if (reader["IsSent"].Equals(0)) 

       } 
      } 
     } 


    } 

回答

0

你可以做這樣的事情

 long quizId; 
     int isSent;  
     While (reader != null){ 
      if (reader.Read()) 
       if (reader["IsSent"].Equals(0)){ 
        quizId = Convert.ToInt64(reader["quizId"]); 
        isSent = Convert.ToInt32(reader["isSent"]); 
       } 
     } 
+0

你能告訴我什麼聲明兩個變量的好處,然後將它們轉換爲INT?另外,我想知道的是如何讀取ID並將其放入電子郵件中。 – user1093651 2011-12-31 03:51:31

相關問題