エラーはループステートメントにあると思います:
それ以外の:
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いるので、行の総数から1 を差し引く必要があります。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);