왜이 오류가 발생합니까?SQL 서버에 DBNULL 값을 삽입 할 수 없습니다.
Object cannot be cast from DBNull to other types.
난, SQL 서버 여기에 2005
내 코드가있는 수치 데이터에 대한
if (MeasurementTr.Visible == true)
{
materialIn.measurementId = Convert.ToInt64(DlMeasurement.SelectedValue.ToString());
}
else
{
materialIn.measurementId = Convert.ToInt64(DBNull.Value);
}
편집 null 값을 삽입 할 때 :
이 잘된다?
materialIn.measurementId = (Convert.ToInt64(DlMeasurement.SelectedValue.ToString()) != 0) ? Convert.ToInt64(DlMeasurement.SelectedValue.ToString()) : 0;
아니요. DBNull을 Int64로 변환 할 수 없습니다. 먼저 객체 값이 DBNull이 아닌지 확인해야합니다! –
그것은 'else'블록의 문제입니다. 나는'if' 블록이 괜찮다고 확신합니다 ('ToString'은 결코'DBNull.Value'를 반환 할 수 없습니다). 내가 말했듯이'DataNow' 나'SetmeasurementIdNull' 메쏘드를'DataRow'에 사용하십시오. null이 아닌 경우'null' 또는'default (Int64)'로 설정하십시오. – Aaronaught
@Aaronaught 나는 else 부분을 그리워 ... 너 맞아 +1. –