Cannot insert DBNULL value in sql server

Why am I getting this error?

Object cannot be cast from DBNull to other types.

when I entered null for a numeric data type in SQL Server 2005

Here is my code

 if (MeasurementTr.Visible == true)
    {
        materialIn.measurementId = Convert.ToInt64(DlMeasurement.SelectedValue.ToString());
    }
    else
    {
        materialIn.measurementId = Convert.ToInt64(DBNull.Value);
    }

EDIT :

Is it correct?

 materialIn.measurementId = (Convert.ToInt64(DlMeasurement.SelectedValue.ToString()) != 0) ? Convert.ToInt64(DlMeasurement.SelectedValue.ToString()) : 0;
+3
source share
3 answers

You cannot convert DBNull.Valueto Int64how your code is trying to do in Convert.ToInt64. DBNull.Valuemeans "unknown" or "nonexistent," and therefore there is no logical conversion to any other data type.

materialIn - DataRow, SetMeasurementIdNull, . Linq SQL EF, DBNull, materialIn.measurementId = null.

+5

Object cannot be cast from DBNull to other types.

, DBNull.

materialIn.measurementId = DlMeasurement.SelectedValue == DBNull.Value? 0: Convert.ToInt64 (DlMeasurement.SelectedValue.ToString());

+1

DBNull Int64. nullable int, null - null, 0, .

0

Source: https://habr.com/ru/post/1730015/


All Articles