Как вычислить столбцы представления сетки данных из источника данных в новые добавленные столбцы и обновить только источник данных - PullRequest
0 голосов
/ 27 июня 2019

Я делаю программу для контроля или подсчета выходных данных. Я выбрал 3 столбца только в моем виде сетки МОДЕЛЬ, СТАНЦИЯ И ВЫХОД из моего источника данных. Как я могу добавить 2 столбца (TARGET_OUTPUT AND BALANCE_OUTPUT) в мое представление данных? и рассчитать баланс по Target_Output - Output? и после добавления 2 столбцов и расчета Как я могу обновить свои старые данные, не затрагивая 2 новых столбца, которые я добавил?

Я попытался создать имя метода (Load_Data), чтобы получить 3 столбца из моего источника данных, я вызываю методы одним нажатием кнопки (LOAD DATA).

Я добавил свой код в добавление столбцов в кнопку (Add_Col)

Теперь моя проблема в том, как рассчитать каждый столбец.

и если я снова нажму кнопку для загрузки данных, как загрузить только 3 исходных столбца, не затрагивая 2 новых столбца?

  //My method Load_Data
 void Load_Data()
    {
            conn.Open();
            cmd = new OleDbCommand("SELECT MODEL,STATION,COUNT 
(DISTINCT(MO_SN))AS OUTPUT from dqc342 where TEST_DTTM between to_date('" 
+ dtpFrom.Value.ToString("yyyyMMdd 08:00:00") + "','yyyymmdd 
hh24:mi:ss')and to_date('" + dtpTo.Value.ToString("yyyyMMdd 07:59:59") + 
"','yyyymmdd hh24:mi:ss')and station in('RC4','VMI2')and 
 LINE_NO='H5'GROUP BY LINE_NO,MODEL,STATION ORDER BY MODEL", conn);
            reader = cmd.ExecuteReader();
            if (reader.HasRows)
            {
                dt = new DataTable();
                dt.Load(reader);
                dataGridView_H5.DataSource = dt;
                conn.Close();
                reader.Close();
            }    
    }
//code for adding column
 private void Add_Col_Click(object sender, EventArgs e)
    {
        dataGridView_H5.Columns.Add("TARGET_COL", "TARGET_OUTPUT");
        dataGridView_H5.Columns.Add("BALANCE_COL", "BALANCE_OUTPUT");
    }

//code for calculating Balance ..OUTPUT-TARGET.
 private void Calculate_Click(object sender, EventArgs e)
    {
        if (dataGridView_H5.Rows.Count > 0)
        {
            for (int i = 0; i < dataGridView_H5.Rows.Count; i++)
            {
                int sum = 
Convert.ToInt32(dataGridView_H5.Rows[i].Cells[3].Value.ToString()) - 
Convert.ToInt32(dataGridView_H4.Rows[i].Cells[2].Value.ToString());
                dataGridView_H4.Rows[i].Cells[4].Value = sum.ToString();
            }
        }

Когда я нажимаю кнопку «Рассчитать», я получаю сообщение об ошибке «Индекс вышел за пределы допустимого диапазона», и когда я снова нажимаю кнопку «Загрузить», он удаляет все данные, введенные в целевой столбец. Я хочу загрузить 3 исходных столбца только из моего источника данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...