我正在制作一个程序来监视或计数输出。我仅从数据源的datagridview MODEL,STATION和OUTPUT中选择了3列,如何在datagridview中添加2列(TARGET_OUTPUT和BALANCE_OUTPUT)?并通过Target_Output-Output计算余额? 在添加2列并计算后,如何在不影响添加的2个新列的情况下刷新旧数据?
为了从数据源中获取3列,我试图命名一个方法名称(Load_Data),然后单击按钮(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个原始列。 / p>