为什么我得到这个错误?不能将DBNULL值插入到sql server中
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;
不,您不能将DBNull转换为Int64。您首先需要验证对象值不是DBNull! – 2010-01-26 05:20:58
这是'else'块,这是问题所在。我确定'if'块没问题('ToString'永远不会返回'DBNull.Value')。正如我所说 - 在DataRow上使用'SetNull'或'SetmeasurementIdNull'方法,如果是这样的话,或者如果它是不可空的,只是将其设置为'null'或'default(Int64)'。 – Aaronaught 2010-01-26 05:29:50
@Aaronaught我错过了其他部分......你正确和+1。 – 2010-01-26 05:44:00