bạn có thể sử dụng html này
<tfoot>
<tr>
<td>Tot</td>
<td>60</td>
<td></td>
<td>30</td>
</tr>
<tr>
<td>Avg</td>
<td>20</td>
<td></td>
<td>10</td>
</tr>
</tfoot>
điều này thêm hai dòng ở cuối bảng.
để tính toán tổng và trung bình các định nghĩa
int totnum1 = 0;
decimal totnum2 = 0;
int numRow = 0;
decimal avg1 = 0;
decimal avg2 = 0;
trong vòng lặp
totnum1 += reader.GetInt32(1);
totnum2 += reader.GetInt32(3);
numRow ++;
ở cuối vòng lặp
avg1 = totnum1 / numRow;
avg2 = totnum2 / numRow;
bạn có thể viết html như trong câu hỏi cuối cùng bằng cách sử dụng totnum1, totnum2 avg1 và avg2 thay cho số trong ví dụ trên
public string getWhileLoopData()
{
string htmlStr = "";
SqlConnection thisConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString);
SqlCommand thisCommand = thisConnection.CreateCommand();
thisCommand.CommandText = "SELECT * FROM MyTable WHERE TheDate = @TheDate";
thisCommand.Parameters.AddWithValue("@TheDate", txtDate.Text);
int totnum1 = 0;
decimal totnum2 = 0;
int numRow = 0;
decimal avg1 = 0;
decimal avg2 = 0;
thisConnection.Open();
SqlDataReader reader = thisCommand.ExecuteReader();
while (reader.Read()) {
int id = reader.GetInt32(0);
int Number01 = reader.GetInt32(1);
DateTime TheDate = reader.GetDateTime(2);
Decimal Number02 = reader.GetDecimal(3);
totnum1 += reader.GetInt32(1);
totnum2 += reader.GetInt32(3);
numRow ++;
//string Pass = reader.GetString(2);
htmlStr += "<tr><td>" + id + "</td><td>" + Number01 + "</td><td>" + TheDate + "</td><td>" + Number02 + "</td></tr>";
}
thisConnection.Close();
avg1 = totnum1 / numRow;
avg2 = totnum2 / numRow;
htmlStr += string.Format("<tfoot><tr><td>Tot</td><td>{0}</td><td></td><td>{1}</td></tr>", totnum1 , totnum2 );
htmlStr += string.Format("<tfoot><tr><td>Avg</td><td>{0}</td><td></td><td>{1}</td></tr></tfoot>", avg1 , avg2 );
return htmlStr;
}