Если вы уверены, что значения вашего столбца никогда не будут нулевыми или пустыми, то лучшим способом будет
ds.Tables[0].Columns.Add("Sum", typeof(double), "Col1 + Col2");
В случае, если значение любого из ваших столбцов будет нулевым, оно не будет выдавать никаких исключений, кроме итоговых значений.значение также будет пустым ...
Если может быть какое-либо нулевое значение, попробуйте это
dt.Columns.Add("Total", typeof(double));
foreach (DataRow dr in dt.Rows)
{
if (String.IsNullOrEmpty(dr["col1"].ToString()))
dr["col1"] = 0.0;
if (String.IsNullOrEmpty(dr["col2"].ToString()))
dr["col2"] = 0.0;
dr["Total"] = Convert.ToDouble(dr["col1"]) + Convert.ToDouble(dr["col2"]);
}
В этом случае, если вы никогда не проверяете нулевое или пустое значение, это даст вамисключение времени выполнения ...