asp.net - 파라미터 - 저장 프로 시저의 DateTime 필드에 매개 변수의 NULL 전달




프로 시저 추가 (3)

이 시도

클래스와 해당 속성을 사용하고 있고 해당 속성 값이 매개 변수로 사용되는 경우이 작업을 수행 할 수 있습니다.

재산의 서명을

public DateTime? myDateTime = null;// Here ? is used to make the property nullable.

또한 날짜 열이 varchar 유형 인 경우 Date (Sql2008) / DateTime (2005)으로 수정하십시오.

// 매개 변수를 this로 변경하십시오.

@SomeDate datetime = null (as suggested by chris)

필드가 null을 받아들이도록 허용 한 다음 값을 다음과 같이 전달합니다.

DB.Parameters.Add("@date", DBNull.Value)

내가 제공하는 매개 변수를 사용하여 데이터베이스를 업데이 트하는 저장 프로 시저가 있지만 저장 프로 시저에 NULL을 전달하는 데 문제가 있습니다.

내가 NULL을 만들 필요가있는 필드는 DateTime 필드입니다.

DB.Parameters.AddWithValue("@date", NULL)

이것은 나에게 오류를 준다.

'NULL'이 선언되지 않았습니다. 'Null'상수는 더 이상 지원되지 않습니다. 대신 'System.DBNull'사용

그래서 나는 시도했다.

DB.Parameters.AddWithValue("@date", DBNull.Value.ToString())

그러나 이것은 " 1900-01-01 00:00:00.000 "" 을 생성합니다.

나는 또한 시도했다.

DB.Parameters.AddWithValue("@date", DBNull.Value)

하지만이 오류가 발생합니다.

'System.DBNull'형식의 값을 'String'으로 변환 할 수 없습니다.

아무도 아이디어가 있니?


AddWithValue 아닌 Add 사용하여 다음과 같이 시도하십시오.

DB.Parameters.Add("@date", SqlDbType.DateTime).Value = DBNull.Value;

이것은 하나의 예입니다. 나를위한 일이야.

if(obj.myDate == DateTime.MinValue)
{
    aCommand.Parameters.Add("dateParameter", SqlDbType.Date).Value = DBNull.Value;
}
else
{
    aCommand.Parameters.Add("dateParameter", SqlDbType.Date).Value = obj.myDate ;
}




null