2014-04-14 4 views
0

저장 프로 시저가 null 값을 반환했는지 확인해야합니다.저장 프로 시저에서 NULL이 반환되었는지 확인하는 방법은 무엇입니까?

public static bool MyMethod(String isoNum) 
{ 
    SqlConnection conn = null; 
    bool regionExists = true; 
    try 
    { 
     using (conn = new SqlConnection(ConfigurationManager.ConnectionStrings["String"].ConnectionString)) 
     { 
      using (SqlCommand cmd = new SqlCommand("SPU_GetRegionBasedOnIso", conn)) 
      { 
       cmd.CommandType = CommandType.StoredProcedure; 
       cmd.Parameters.AddWithValue("@isoNum", isoNum); 
       using (SqlDataReader dr = cmd.ExecuteReader()) 
       { 
       **<<Here I need to check for NULL value>>** 
       } 

      } 
     } 
    } 
    catch (Exception e) 
    { 
     throw new System.Exception(e.Message.ToString()); 
    } 
    return regionExists; 
} 

여기에 NULL를 확인하는 가장 좋은 방법은 무엇입니까 : 현재 나는 다음과 같은 코드가?

당신에게 대신 ExecuteReader

+0

RETURN 문 또는 SELECT 문을 사용하여 sproc에서 복귀 하시겠습니까? –

+0

select 문 –

+0

단일 값 ("SELECT @foo"와 같은 것)을 반환하거나 여러 열/행을 반환합니까? –

답변

2

사용 ExecuteScalar 감사 DBNull.Value에 대해 비교합니다.

object result = cmd.ExecuteScalar(); 
if (result == DBNull.Value) 
{ 
    .... 
} 
+0

VS 2005을 사용합니다. –

+1

ExecuteScalar 및 DBNull은 .NET 1.0 이후로 사용되었습니다. –

+0

나는'var'에 대해서 말하고 있습니다 –

관련 문제