2016-06-09 19 views
0

我試圖發送電子郵件摘要以顯示查詢中顯示的表中有空或全部文件的總數。我的問題是如何爲總空白/完整文件創建一個計數器,然後是兩者的總數!任何幫助將不勝感激以c計數總數

// Connection String 
      string ConnectionString = @"Data Source= (localdb)\Projects;Initial Catalog=Database; Integrated Security=True;Connect Timeout=30;Encrypt=False;"; 
      SqlDataReader reader; 
      String SendMessage = "Select * FROM Files where Full = 1 or Empty = 2"; 
      using (SqlConnection MyCon = new SqlConnection(ConnectionString)) 
      { 
       MyCon.Open(); 
       SqlCommand cmd = new SqlCommand(SendMessage, MyCon); 
       ArrayList EmailArray = new ArrayList(); 
       reader = cmd.ExecuteReader(); 

       var Email = new List<EmailSend>(); 

       while (reader.Read()) 
       { 

        Email.Add(new EmailSend 
        { 


         Full = Convert.ToString(reader["Full"]), 
         Empty = Convert.ToString(reader["Empty"]), 

        }); 
       } 

回答

1

任何錯誤,只是在SQL中做這個?

string SendMessage = @" 
      SELECT (SELECT COUNT(*) FROM Files where Full = 1) AS CountFull, 
        (SELECT COUNT(*) FROM Files where Empty = 2) AS CountEmpty" 

然後用

int countFull=-1,countEmpty =-1; 

if(reader.Read()) 
{ 
countFull = (int)reader["CountFull"]; 
countEmpty = (int)reader["CountEmpty"]; 
} 

int fullOrEmpty = countFull+countEmpty; 
+1

你爲什麼初始化整數爲-1代替while(reader.Read())循環?應該是0我認爲。您不應該依賴負整數來指示錯誤或狀態。 – Lebowski156

+0

'while(reader.Read())' –

+0

有什麼問題謝謝大家的回答 – Dodi