标准的HTML表和SQL Server表的总和

本文关键字:Server SQL HTML 表和 标准 | 更新日期: 2023-09-27 18:11:58

参考此链接:SQLDataReader GetDateTime Format

结果应该是:

ID     Number01     TheDate     Number02
----------------------------------------
1      10           01/06/2014  5
2      20           02/06/2014  10
3      30           03/06/2014  15

有没有人可以告诉我,我怎么能把总数上的每一列,包含一个数字数据类型?总数应该在桌子的末尾。

例如,第一个页脚是SUM(number02),然后在第二个页脚,是平均值。AVG(number02)

所以我可以说,多重页脚

结果应该是:

ID     Number01     TheDate     Number02
----------------------------------------
1      10           01/06/2014  5
2      20           02/06/2014  10
3      30           03/06/2014  15
TOTAL  60           -           30
AVE    20           -           10

请帮助。谢谢你。

标准的HTML表和SQL Server表的总和

你可以使用这个html

<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>

在表的末尾添加两行。

计算总数和平均值在定义

int totnum1 = 0;
decimal totnum2 = 0;
int numRow = 0;
decimal avg1 = 0;
decimal avg2 = 0;

在循环

totnum1 += reader.GetInt32(1);
totnum2 += reader.GetInt32(3);
numRow ++;

在循环结束

avg1 = totnum1 / numRow;
avg2 = totnum2 / numRow;

您可以像上一个问题那样编写HTML,使用totnum1, totnum2 avg1和avg2来代替上面示例中的数字

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;
}