Seperti yang dikatakan pesan kesalahan, nilai selnya adalah DBNull.Value
dan itu tidak dapat mengonversi dari itu menjadi apa pun yang Anda inginkan (dalam hal ini long
atau int
). Anda perlu memeriksa DBNull
sebelum mengonversi/mentransmisikan nomor:
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);
Karena ini menambahkan beberapa overhead yang mengganggu, jika Anda melakukan sebanyak ini, Anda mungkin ingin membuat metode pembantu yang melakukannya untuk Anda.
public static long? getLongFromDB(object value)
{
if (value == DBNull.Value) return null;
return Convert.ToInt64(value);
}
Maka kode Anda dapat menjadi:
Int64 id_riga = getLongFromDB((sender as DataGridView).Rows[e.RowIndex].Cells["column_ID"].Value)
.GetValueOrDefault();