정의했습니다 클래스 사람 속성 생일으로 nullable DateTime?, 다음 예제에서 null 통합 연산자가 작동하지 않아야하는 이유는 무엇입니까?C# ?? null 통합 연산자 질문
cmd.Parameters.Add(new SqlParameter("@Birthday",
SqlDbType.SmallDateTime)).Value =
person.Birthday ?? DBNull.Value;
컴파일러 오류가 발생했습니다. "연산자 '?? 'System.DateTime'유형의 피연산자에 적용 할 수 없습니다. 및 'System.DBNull' "
또한 컴파일 오류가있어 다음 : 리팩터링 추천하고, 컴파일하지만, 제대로 작동하지 않았다으로
cmd.Parameters.Add(new SqlParameter("@Birthday",
SqlDbType.SmallDateTime)).Value =
(person.Birthday == null) ? person.Birthday:DBNull.Value;
내가 (객체)에 캐스트를 추가하고 이 값은 두 경우 모두 sqlserver db에 null로 저장되었습니다.
SqlDbType.SmallDateTime)).Value =
person.Birthday ?? (object)DBNull.Value;
누군가 무슨 일이 일어나고 있는지 설명 할 수 있습니까?
if (person.Birthday == null)
cmd.Parameters.Add("@Birthday", SqlDbType.SmallDateTime).Value
= DBNull.Value;
else cmd.Parameters.Add("@Birthday", SqlDbType.SmallDateTime).Value =
person.Birthday;
복제본 : http://stackoverflow.com/questions/218808/c-ado-net-nulls-and-dbnull-is-there-more-efficient-syntax – sgriffinusa
다른 게시물에서 가져 오기 : SqlDbType.SmallDateTime)). 값 = person.Birthday ?? (객체) DBNull.Value; 감사! –