Zoals de foutmelding zegt, is de waarde van de cel DBNull.Value
en het kan daar niet van worden omgezet naar wat je maar wilt (in dit geval een long
of een int
). U moet controleren op DBNull
voordat u het nummer converteert/cast:
Int64 id_riga = 0;
object value = (sender as DataGridView).Rows[e.RowIndex].Cells["column_ID"].Value;
if(value != DBNull.Value)
id_riga = Convert.ToInt64(value);
Omdat dit wat vervelende overhead met zich meebrengt, wil je, als je dit vaak doet, waarschijnlijk een hulpmethode maken die dit voor je doet.
public static long? getLongFromDB(object value)
{
if (value == DBNull.Value) return null;
return Convert.ToInt64(value);
}
Dan kan je code zijn:
Int64 id_riga = getLongFromDB((sender as DataGridView).Rows[e.RowIndex].Cells["column_ID"].Value)
.GetValueOrDefault();