जैसा कि त्रुटि संदेश कहता है, सेल का मान DBNull.Value
है और यह उस से परिवर्तित नहीं हो सकता जो आप चाहते हैं (इस मामले में एक long
या एक int
) आपको DBNull
. की जांच करने की आवश्यकता है नंबर बदलने/कास्ट करने से पहले:
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);
क्योंकि यह कुछ कष्टप्रद ओवरहेड जोड़ता है, यदि आप इतना करते हैं तो आप शायद एक सहायक विधि बनाना चाहेंगे जो आपके लिए यह काम करे।
public static long? getLongFromDB(object value)
{
if (value == DBNull.Value) return null;
return Convert.ToInt64(value);
}
तब आपका कोड हो सकता है:
Int64 id_riga = getLongFromDB((sender as DataGridView).Rows[e.RowIndex].Cells["column_ID"].Value)
.GetValueOrDefault();