Suma de valores de columna en C #

Utilizo el siguiente código para calcular la sum de una fila específica en la base de datos y mostrarla en una nueva fila en esa columna de intención. pero encontraré un error.

Referencia a objeto no establecida como instancia de un objeto

Por favor ayúdame a solucionar esto.

Gracias por adelantado.

int sum = 0; for (int i = 0; i < dt.Rows.Count; i++) { sum += int.Parse(dataGridView1.Rows[i].Cells["Fee"].Value.ToString()); } DataSet ds = new DataSet(); adapter.Fill(ds); DataRow row = ds.Tables["Entry"].NewRow(); ds.Tables["Entry"].Rows.Add(row); 

Quiero saber cómo puedo ver la sum en una nueva fila.

Creo que el error está en la statement de bucle:

En lugar de:

 for (int i = 0; i < dt.Rows.Count; i++) { sum += int.Parse(dataGridView1.Rows[i].Cells["Fee"].Value.ToString()); } 

utilizar esta:

 for (int i = 0; i < dt.Rows.Count - 1; i++) { sum += int.Parse(dataGridView1.Rows[i].Cells["Fee"].Value.ToString()); } 

usted está comenzando en el Index zero por lo que debe deducir uno para el número total de filas. Object reference not set to an instance of an object cuando llegue a:

 sum += int.Parse(dataGridView1.Rows[dt.Rows.Count].Cells["Fee"].Value.ToString()); 

porque tal fila no existe.

ACTUALIZACIÓN 1

después del bucle, inserte esta statement:

 dataGridView1.Rows.Add("", "", sum) 

ACTUALIZACIÓN 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); 

‘ds’ no tiene una tabla ‘Entrada’, es por eso que aparece el error ‘La referencia a un objeto no está configurada para una instancia de un objeto’.

Puede utilizar el método de cálculo en datatable. obtenga el resultado del método de cálculo, luego cree una nueva fila a partir de datos y luego asigne el campo apropiado. a continuación, agregue la nueva fila a datatable.

Aunque su pregunta no es muy clara, consulte el bucle ya sea el valor de acceso desde datatable o desde la cuadrícula Me gusta

 for (int i = 0; i < dt.Rows.Count; i++) { if (dt.Rows[i]["Fee"].Value !=null) sum += int.Parse(dt.Rows[i]["Fee"].Value.ToString()); } 

Y también asegúrese de que dt.Rows [i] ["Fee"] no contenga valores nulos Incluso puede usar el método de cálculo para hacer la sum.

Le sugiero que use el depurador y vea dónde ocurre exactamente este error 🙂

También puede suceder si el DB devuelve nulo para una celda “FEE”. Ejecútelo y vea dónde está exactamente y mire los valores, si ve un nulo, necesitará si! = Null.