[西门子] c#实现自动化报表之一,查询生成基本的平均值、最大值、最小值

[复制链接]
查看91463 | 回复0 | 2024-3-8 15:40:36 | 显示全部楼层 |阅读模式
上一篇文章简单的实现了C#连接MYSQL后,实现数据查询显示:

测试c#查询MYSQL数据库

本次我们做简单的查询排序及计算平均值、最小值、最大值。

一、重新排序

    上篇文章我们查询的序号直接是引用了mysql的序号,我们本次重新排序:

代码如下:

//this.dataGridView1.Rows[index].Cells[0].Value= reader.GetInt32("xh").ToString();//调用数据库本身的序号

this.dataGridView1.Rows[index].Cells[0].Value = num.ToString();//查询数据重新排序



二、计算平均值

2.1 计算所有查询的累计值



2.2 算术平均值

  this.dataGridView1.Rows.Add();//增加1行,用于显示平均值,

   this.dataGridView1.Rows[num].Cells[1].Value = "平均值";

   this.dataGridView1.Rows[num].Cells[2].Value = (a1 / num).ToString("#0.000");//平均值保留三位小数

   this.dataGridView1.Rows[num].Cells[3].Value = (a2 / num).ToString("f3");//平均值保留三位小数

   this.dataGridView1.Rows[num].Cells[4].Value = (a3 / num).ToString("f3");//平均值



三、计算最大值

var MaxID1 = dataGridView1.Rows.Cast<DataGridViewRow>()

         .Max(r => Convert.ToSingle(r.Cells[2].Value));  //取t1的最大值

var MaxID2= dataGridView1.Rows.Cast<DataGridViewRow>()

       .Max(r => Convert.ToSingle(r.Cells[3].Value));  //取t2的最大值

var MaxID3 = dataGridView1.Rows.Cast<DataGridViewRow>()

       .Max(r => Convert.ToSingle(r.Cells[4].Value));  //取t3的最大值

this.dataGridView1.Rows[num + 1].Cells[1].Value = "最大值";

this.dataGridView1.Rows[num+1].Cells[2].Value= MaxID1.ToString("#0.000");//t1最大值

this.dataGridView1.Rows[num+1].Cells[3].Value= MaxID2.ToString("#0.000");//t2最大值

this.dataGridView1.Rows[num+1].Cells[4].Value= MaxID3.ToString("#0.000");//t3最大值

四、计算最小值

var minID1 = dataGridView1.Rows.Cast<DataGridViewRow>()

               .Min(r => Convert.ToSingle(r.Cells[2].Value));  //取t1的最小值

var minID2 = dataGridView1.Rows.Cast<DataGridViewRow>()

             .Min(r => Convert.ToSingle(r.Cells[3].Value));  //取t2的最小值

var minID3 = dataGridView1.Rows.Cast<DataGridViewRow>()

             .Min(r => Convert.ToSingle(r.Cells[4].Value));  //取t3的最小值

this.dataGridView1.Rows.Add(2);//增加2行,用于显示最小值,最大值

this.dataGridView1.Rows[num + 2].Cells[1].Value = "最小值";

this.dataGridView1.Rows[num+2].Cells[2].Value= minID1.ToString("#0.000");//t1最小值

this.dataGridView1.Rows[num+2].Cells[3].Value= minID2.ToString("#0.000");//t2最小值

this.dataGridView1.Rows[num+2].Cells[4].Value= minID3.ToString("#0.000");//t3最小值

五、测试效果与修正



这里我们可以看出,平均值和最小值之间有一行空数据,为此我们采用以下语句删除空行。

  dataGridView1.Rows.RemoveAt(num + 1);//删除空行数据

修正后测试效果:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则