Как программно добавить новую строку в Datagridview с привязкой к данным

Я хочу суммировать строки некоторых из моих столбцов datagridview и добавить строку внизу, которая будет содержать итоги для каждого столбца.

Я нашел способ рассчитать итоги для каждого столбца datagridview, который мне нужен, однако я не могу программно добавить новую строку в свой datagridview.

Ниже мой фрагмент кода

     if (rbDA.Checked == true)
            {
                dept = "DA";
                dayTbl = "tblDayDA";
                getDayData = "Select date,num_jobs_pending,jobs_called,total_jobs_overall,num_repairs_called,total_num_repairs,num_contracts_called,total_num_contracts FROM " + dayTbl + " WHERE date BETWEEN #" + dtbFrom.Value.ToShortDateString().Trim() + "# AND #" + dtpTo.Value.ToShortDateString().Trim() + "#";

            }

            if (rbEL.Checked == true)
            {
                dept = "Elevator";

                dayTbl = "tblDayEL";
                getDayData = "Select date,num_jobs_pending,jobs_called,total_jobs_overall,num_repairs_called,total_num_repairs,num_contracts_called,total_num_contracts FROM " + dayTbl + " WHERE date BETWEEN #" + dtbFrom.Value.ToShortDateString().Trim() + "# AND #" + dtpTo.Value.ToShortDateString().Trim() + "#";

            }

            else if (rbAC.Checked == true)
            {
                dept = "AC";

                dayTbl = "tblDayAC";
                getDayData = "Select date,num_jobs_pending,jobs_called,total_jobs_overall,num_repairs_called,total_num_repairs,num_contracts_called,total_num_contracts FROM " + dayTbl + " WHERE date BETWEEN #" + dtbFrom.Value.ToShortDateString().Trim() + "# AND #" + dtpTo.Value.ToShortDateString().Trim() + "#";

            }
            else if (rbProj.Checked == true)
            {
                dept = "Projects";

                dayTbl = "tblDayPROJ";
                getDayData = "Select date,num_jobs_pending,jobs_called,total_jobs_overall,num_repairs_called,total_num_repairs,num_contracts_called,total_num_contracts FROM " + dayTbl + " WHERE date BETWEEN #" + dtbFrom.Value.ToShortDateString().Trim() + "# AND #" + dtpTo.Value.ToShortDateString().Trim() + "#";
            }


            if (con.State == ConnectionState.Closed)
            {
                con.Open();
            }


            try
            {


                DataSet ds1 = new DataSet();

                DataTable dt1 = new DataTable();

                ds1.Tables.Add(dt1);



                OleDbDataAdapter da = new OleDbDataAdapter(getDayData, con);

                da.Fill(dt1);
                dgvGetDates.SelectionMode = DataGridViewSelectionMode.FullRowSelect;

                dt1.NewRow();                 // dt1.NewRow();

                dgvGetDates.DataSource = dt1.DefaultView;




                string label = "Total";
                int jobsCalled = 0;
                int totalNumJobs = 0;
                int totalJobsAllDepts = 0;
                int numRepairsCalled = 0;
                int totalRepairsToCall= 0;
                int numContractsCalled = 0;
                int numContractsToCall = 0;



                for (int i = 0; i < dgvGetDates.Rows.Count; i++)
                {
                    jobsCalled += Convert.ToInt32(dgvGetDates.Rows[i].Cells["jobs_called"].Value);
                    totalNumJobs = Convert.ToInt32(dgvGetDates.Rows[i].Cells["num_jobs_pending"].Value) + totalNumJobs;
                    totalJobsAllDepts += Convert.ToInt32(dgvGetDates.Rows[i].Cells["total_jobs_overall"].Value);
                    numRepairsCalled += Convert.ToInt32(dgvGetDates.Rows[i].Cells["num_repairs_called"].Value);
                    totalRepairsToCall += Convert.ToInt32(dgvGetDates.Rows[i].Cells["total_num_repairs"].Value);
                    numContractsCalled += Convert.ToInt32(dgvGetDates.Rows[i].Cells["num_contracts_called"].Value);
                    numContractsToCall += Convert.ToInt32(dgvGetDates.Rows[i].Cells["total_num_contracts"].Value);
                }



                DataGridViewRow row = (DataGridViewRow)dgvGetDates.Rows[0].Clone();

                string[] row1 = new string[] { jobsCalled.ToString(), totalNumJobs.ToString(), totalJobsAllDepts.ToString(), numRepairsCalled.ToString(), totalRepairsToCall.ToString(), numContractsCalled.ToString(), numContractsToCall.ToString() };
                 dgvGetDates.Rows.Add(row1);



                DGVPrinter printer = new DGVPrinter();
                printer.Title = "CSR Calls Per Day Report - " + dept +" Department";
                printer.SubTitle = " Date:" + dtbFrom.Value.ToShortDateString() + " - " + dtpTo.Value.ToShortDateString() + "  Printed: " + DateTime.Now;
                printer.SubTitleFormatFlags = StringFormatFlags.LineLimit | StringFormatFlags.NoClip;
                printer.PageNumbers = true;
                printer.PageNumberInHeader = false;
                printer.PorportionalColumns = true;
                printer.HeaderCellAlignment = StringAlignment.Near;
                printer.FooterSpacing = 15;
                //printer.Footer = "";

                printer.PrintPreviewDataGridView(dgvGetDates); 

person Squaddy    schedule 27.04.2018    source источник
comment
Вам нужно добавить эту строку в DataSource.   -  person TaW    schedule 27.04.2018
comment
Вы должны очень скоро прочитать о параметризованных операторах и параметрах SQL. Это неправильный способ создания SQL-запросов.   -  person Ňɏssa Pøngjǣrdenlarp    schedule 27.04.2018
comment
Как добавить строку в источник данных?   -  person Squaddy    schedule 27.04.2018
comment
@Ivan: Нет, это не так. Вопрос о строках с привязкой к данным, ссылка о несвязанных DGV. - Я исправил дубликат ссылки.   -  person TaW    schedule 27.04.2018