为什么会出现这个错误?
当我在SQL Server 2005中为数值数据类型插入空值时,以下是我的代码:
Object cannot be cast from DBNull to other types.
当我在SQL Server 2005中为数值数据类型插入空值时,以下是我的代码:
if (MeasurementTr.Visible == true)
{
materialIn.measurementId = Convert.ToInt64(DlMeasurement.SelectedValue.ToString());
}
else
{
materialIn.measurementId = Convert.ToInt64(DBNull.Value);
}
编辑:
这正确吗?
materialIn.measurementId = (Convert.ToInt64(DlMeasurement.SelectedValue.ToString()) != 0) ? Convert.ToInt64(DlMeasurement.SelectedValue.ToString()) : 0;
else
块上。我确定if
块没问题(ToString
永远不会返回DBNull.Value
)。就像我说的 - 如果是这样,可以在DataRow
上使用SetNull
或SetmeasurementIdNull
方法,或者将其设置为null
或default(Int64)
(如果它是非空类型)。 - Aaronaught