天天看點

DataGridView增加統計行

private DataTable dtshowdata()
        {
            string sql = "select DJBH 單據編号,WLMC 物料名稱,YSCH 車牌号,GYS 客戶,ZT 是否出廠,KCCZ 空車重,ZCCZ 重車重,JZ 淨重,KZ 扣重,SJZL 實重,RQdate 寫卡日期,RQtime 寫卡時間,First 過磅号, ZCdtime 進廠稱重時間,Second 過磅号,KCdtime 出廠稱重時間,KZdtime 扣重時間,ZDR 制卡人,HYdtime 化驗時間,HYDH 化驗單号, CH 倉号,HYS 化驗人,TYR 同意出廠人,BZ 備注 from YCLTable";
            if (con.State.ToString() == "Open")
                con.Close();
            con.Open();
            SqlDataAdapter da = new SqlDataAdapter(sql, con);
            DataTable dt = new DataTable();
            da.Fill(dt);
            con.Close();
            return dt;
        }
        private DataTable dtstaticdata()
        {
            DataTable dt = dtshowdata();
            DataRow dr = dt.NewRow();
            dr[4] = "統計";
            dr[5] = dt.Compute("Sum(淨重)", null);//無效的聚合函數 Sum()和類型 String 的用法 資料庫中的資料類型必須是數字
          //  dr[2] = dt.Compute("Sum(數學)", null);//求平均數avg;
            dt.Rows.Add(dr);
            return dt;
        }

        private void Smot() //鎖定統計行 不讓排序
        {
            dataGridView1.Columns[dataGridView1.Columns.Count - 1].SortMode = DataGridViewColumnSortMode.NotSortable;

          //  for (int i = 0; i <= dataGridView1.Columns.Count - 1; i++)//如果想讓統計置頂 可以去掉=号;就可以選擇置頂
        //    {
         //       dataGridView1.Columns[dataGridView1.Columns.Count - 1].SortMode = DataGridViewColumnSortMode.NotSortable;
         //   }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.dataGridView1.DataSource = dtstaticdata();
            Smot();
        }