Ich möchte Methodenberechnung in C#, aber wenn ich den Code ausführen, geben Sie mir Fehler bei der Konvertierung Wert. Der Nachrichtenfehler lautet "Objekt kann nicht von DBNull in andere Typen umgewandelt werden". Der Fehler beginnt bei Zeile int bal = 0;Konvertieren in Berechnung
private void btn_total_Click(object sender, EventArgs e)
{
//int[] columnData = (from DataGridViewRow row in dataGridView3.Rows where row.Cells[2].FormattedValue.ToString() != string.Empty select Convert.ToInt32(row.Cells[2].FormattedValue)).ToArray();
//lbl_sum.Text = columnData.Sum().ToString();
int sum = 0;
for (int i = 0; i < dataGridView3.Rows.Count; ++i)
{
sum += Convert.ToInt32(dataGridView3.Rows[i].Cells[2].Value);
}
int bal = 0;
for (int i = 0; i < dataGridView3.Rows.Count; ++i)
{
bal = Convert.ToInt32(dataGridView3.Rows[i].Cells[3].Value) - sum;
}
if (bal <0)
{
label_bal_pay.Text = bal.ToString();
}
else
{
lbl_bal.Text = bal.ToString();
}
label_bal_pay.Text = bal.ToString();
lbl_bal.Text = bal.ToString();
lbl_sum.Text = sum.ToString();
}
Fügen Sie die vollständige Beschreibung des Fehlers der Frage hinzu. Es wird auch nicht schlecht sein, wenn Sie versuchen, Ihren Code zu debuggen und zu verstehen, was Sie falsch machen. Wahrscheinlich wird Ihr Fehler als 'dataGridView3.Rows [i] .Cells [3] .Value' kann einen Wert enthalten, der keine Ganzzahl ist. –
Ich bearbeite bereits die Beschreibung. Der Wert in der Spalte ist Ganzzahl. @ S.Petrosov –
Führen Sie keine Berechnungen für das * Raster * durch, tun Sie dies auf den tatsächlichen Daten, ob das ein DataGrid oder eine Liste von Objekten ist. Sie müssen in diesem Fall keine Strings analysieren –