我认为错误在循环语句中:
代替:
for (int i = 0; i < dt.Rows.Count; i++)
{
sum += int.Parse(dataGridView1.Rows[i].Cells["Fee"].Value.ToString());
}
用这个:
for (int i = 0; i < dt.Rows.Count - 1; i++)
{
sum += int.Parse(dataGridView1.Rows[i].Cells["Fee"].Value.ToString());
}
你从开始,Index zero
所以你应该从总行数中减去一个。Object reference not set to an instance of an object
当它到达时它将返回:
sum += int.Parse(dataGridView1.Rows[dt.Rows.Count].Cells["Fee"].Value.ToString());
因为这样的行不存在。
更新 1
在循环之后,插入以下语句:
dataGridView1.Rows.Add("", "", sum)
更新 2
int sum = 0;
for (int i = 0; i < dt.Rows.Count - 1; i++)
{
sum += int.Parse(dataGridView1.Rows[i].Cells["Fee"].Value.ToString());
}
DataSet ds = new DataSet();
adapter.Fill(ds);
DataRow row = ds.Tables["Entry"].NewRow();
row[0] = "";
row[1] = "";
row[2] = sum;
ds.Tables["Entry"].Rows.Add(row);